我尝试编写shell脚本,它会将当前目录中的所有可执行文件移动到名为" executables"的文件夹中。
1 for f in `ls`
2 do
3 if [ -x $f ]
4 then
5 cp -R $f ./executable/
6 fi
7 done
执行时,它说
cp: cannot copy a directory, 'executable', into itself, './executable/executable'.
所以我如何避免检查可执行文件' if条件下的文件夹。 或者还有其他任何完美的解决方案。
答案 0 :(得分:0)
ls
。cp
正在复制,mv
正在移动。调整脚本:
for f in *; do
if [ -f "$f" ] && [ -x "$f" ]; then
mv "$f" executables/
fi
done
使用GNU find
:
$ find . -maxdepth 1 -type f -perm +a=x -print0 | xargs -0 -I {} mv {} executables/