gpt4 book ai didi

linux - 将当前目录中的所有可执行文件移动到单独文件夹的 shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:14 29 4
gpt4 key购买 nike

我正在尝试编写 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 条件下检查“可执行”文件夹。 或者有任何其他完美的解决方案。

最佳答案

  1. 不解析 ls 的输出。
  2. 大多数目录都设置了可执行位。
  3. 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/

关于linux - 将当前目录中的所有可执行文件移动到单独文件夹的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38642956/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com