我有一个目录,其中包含不同格式的文件:.txt、.TextGrid、.csv,我想以每个目录包含特定格式的文件的方式拆分该目录。比如 .txt 一个目录,.TextGrid 一个目录等。
答案1
循环遍历文件。对于每个文件,根据文件名计算目标目录的名称。如果该目录尚不存在,则创建该目录,并将文件移动到该目录。
我假设您对文件的“格式”由其扩展名决定感到满意。下面的代码不会移动没有扩展名的文件(例如wibble
)或点文件(例如.foo.bar
)。
set -e # Abort on an error
for file in *.*; do # Loop over file names that have an extension, excluding those that start with a dot
dir="${file##*.}" # Take the file's extension (we know there is one because the file name matches *.*)
mkdir -p -- "$dir" # Create the directory if it doesn't exist already
mv -- "$file" "$dir/" # Move the file into the directory
done