情况:
我的桌面上有一个名为unsorted_files的文件夹,其中包含大约1GB的不同文件类型(jpg,gif,docx,png,wav,mid,csv等)等。
除此之外,我在桌面上还有3个目录,只保存其专用文件类型(jpg,gif,docx)。
这些专用目录的实际目录名是:
jpgdirectory
gifdirectory
docxdirectory
问题:
我想创建一个bash脚本,我可以在mac OS 10.10.5上运行终端,它将从unsorted_files文件夹中分离并处理这些文件类型,并根据文件类型将它们放入新创建的目录中。
即。执行脚本后,unsorted_files文件夹中的所有jpg文件都将被发送到jpgdirectory,所有gif文件将被分派到gifdirectory
需要注意的是,所有带有(jpgdirectory,gifdirectory,docxdirectory)的文件类型必须发送到其他文件
我怎样才能从bash脚本的角度实现这个目标,或者也许只能使用终端命令来完成。
答案 0 :(得分:2)
要在bash中自动执行mkdir和mv命令,可以将其置于如下所示的“for”循环中。
代码:
#!/bin/bash
unsorted_path="/path/to/unsorted/dir"
output_path="/path/to/output/dirs"
for type in $(cat filetypes.txt)
do
mkdir -p ${output_path}/${type}directory
mv ${unsorted_path}/*.${type} ${output_path}/${type}directory/
done
'filetypes.txt'文件是一个文件类型列表,每行一个,例如:
jpg
gif
docx
png
wav
mid
csv
你也可以硬编码文件类型,即
#!/bin/bash
unsorted_path="/path/to/unsorted/dir"
output_path="/path/to/output/dirs"
for type in jpg gif docx png wav mid csv
do
mkdir -p ${output_path}/${type}directory
mv ${unsorted_path}/*.${type} ${output_path}/${type}directory/
done
希望这有帮助!