根据文件格式将一个目录拆分为多个目录

根据文件格式将一个目录拆分为多个目录

我有一个目录,其中包含不同格式的文件:.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

相关内容