在主目录中创建以文件命名的子目录,并将文件移动到相应的子目录中

在主目录中创建以文件命名的子目录,并将文件移动到相应的子目录中

我是初学者,特别是在使用 Unix shell 方面。

有没有办法做以下事情:

  1. 为目录中的每个文件(约 50 个)创建一个子目录。子目录最好以文件或数字(从 1 到 50)命名

  2. 移动文件到相应的子目录

  3. 从主目录开始,对于每个子目录,使用该子目录中的文件进行进一步分析(对其执行已写好的代码)

我将非常感谢您的帮助。非常感谢。

答案1

处理有趣文件名的方法如下:

#!/bin/bash 
files="$(\
    find . -maxdepth 1 -type f -print0 | \
        xargs -0 -r stat --format=\"%N\" \
 )"
for i in $files ; do
  mv "$i" "X_$i" && \
    mkdir "$i" && \
    mv "X_$i" "$i/$i"
done

find . -type f -print0 | \
        xargs -0 -r stat --format=\"%N\"

man find xargs stat

相关内容