【发布时间】:2012-02-08 08:55:18
【问题描述】:
如果 find 命令的输出是文件系统上的文件或目录,我想将 linux 中的 find 命令别名为将打印绝对路径的函数?
这是我目前所得到的,但它不能正常工作。
find_with_abspath(){
for i in $(find "$@")
do
if [ -e "$i" ];
then
readlink -m "$i"
else
echo -n "$i"
fi
done
}
任何想法我做错了什么?
【问题讨论】:
-
它在我的系统上工作,除了包含空格的文件名和目录名(因为
for i in $(find "$@")由空格、制表符和换行符分割——所有这些在文件名中都是合法的,但制表符诚然,换行符很少见)。您发现什么“不正常”? -
我不相信
readlink会按照您的预期行事。至少在我拥有的 MacOS X 和 Linux 系统上,如果给定的文件名不是符号链接,则会出错。我怀疑你想要的是一个类似的程序,它提供realpath()函数或系统调用的输出。