【发布时间】:2014-11-09 16:19:31
【问题描述】:
我正在尝试使用参数 --unhide 创建一个脚本来取消隐藏目录中的文件,但它不起作用。你能帮帮我吗?这是我的部分代码。
for i in `ls -1`
do
if [ -f $i ] || [ -d $i ]
then
if [ `echo $i | cut -c1` == "." ]
then
mv $i ${i#.}
fi
fi
done
谢谢!
那么取消隐藏然后我写--unhide file1 file2怎么样?
elif [ $1 = --unhide ] && [ ! $2 = --all ]
then
for i in $@
do
if [ -f $i ] || [ -d $i ]
then
if [ `echo $i | cut -c1` == "." ]
then
mv $i ${i#.}
fi
fi
done
很容易我们没有隐藏文件,然后参数名称与文件名相同。但是如何检查隐藏文件?我试图写 --unhide .file1 .file2 但脚本只取消隐藏 .file1 和 .file2 不。
【问题讨论】:
-
我想您看到的特定问题是因为
ls -1默认情况下不包含隐藏文件,但 mattias 有一种更强大的方法来做同样的事情。 -
如果您不相信使用
ls来完成这项工作本身就被破坏了,请尝试使用一些包含空格的文件名进行测试......或者更糟糕的是,换行符。
标签: linux bash hidden-files