Linux Bash Script取消隐藏目录中的文件

use*_*731 0 linux bash hidden-files

我试图使用参数--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
Run Code Online (Sandbox Code Playgroud)

谢谢!

那么取消隐藏然后我写--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    
Run Code Online (Sandbox Code Playgroud)

很容易我们没有隐藏文件,那么参数名称与文件名相同.但是如何检查隐藏文件?我试着写--unhide .file1 .file2但脚本只取消隐藏.file1和.file2.

mat*_*ias 5

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

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

GLOBIGNORE=".:.."
for file in .*; do
   mv -n "$file" "${file#.}"
done
Run Code Online (Sandbox Code Playgroud)