我有一个文件夹,里面有 20 个不同的扩展文件,我想将这些文件移动到 3 个不同的文件夹中。现在,我该如何移动所有这些文件(目前它们最终进入文件夹的条件并不重要),而不移动这 3 个子目录(假设它们已经存在)?目前,我无法将这些子文件夹放入它们自己中,显然我不想这样做,所以我只想将与 3 个子文件夹处于同一级别的文件放入这 3 个子文件夹中。谢谢!
附言:如果我在 for 循环中关注 *.txt,它会告诉我无法启动它,所以我很困惑。
X
|_A
|_B
|_C
|_file1.ext
|_file2.ext
|_file3.ext
.
.
.
|_file20.ext
答案1
排除子目录的一些选项:
因为您要移动带有扩展名的文件,所以更改
for i in *
为for i in *.*
(这可能是最简单的选项,前提是您的子目录名称都不包含字符.
)为文件类型 ex 添加明确的测试。
for i in *; do [[ -f "$f" ]] || continue; ...
(与上面类似)使用
find . -maxdepth 1 -type f -exec ...
切换到支持 glob 限定符的 shell,例如 zsh - 您可以在其中写入
for f in *(.)
仅循环遍历常规文件