0

我试图制作一个脚本来使用参数 --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 没有。

4

1 回答 1

7

所以基本上你要求的是一个重命名目录中文件的脚本,其中文件以'。'开头?

像下面这样的东西应该工作

GLOBIGNORE=".:.."
for file in .*; do
   mv -n "$file" "${file#.}"
done
于 2014-11-09T16:25:01.770 回答