我有一个包含大约 150 个文本文件的文件夹。我想以 150 个文件的名称创建文件夹。之后,我希望将文本文件移动到其各自的文件夹中。
myfolder 目录中的文件名称示例:
~/myfolder/
|______ ajhaslf.txt
|______ oiueed.txt
|______ dsflije.txt
我希望我的新结构是:
~/myfolder/
|______ ajhaslf
|____ajhaslf.txt
|______ oiueed
|____oiueed.txt
|______ dsflije
|____dsflije.txt
当然,使用文件名创建目录对我来说不是问题mkdir
。
答案1
@gniourf_gniourf有正确的想法:
set -o errexit -o nounset
cd ~/myfolder
for file in *.txt
do
dir="${file%.txt}"
mkdir -- "$dir"
mv -- "$file" "$dir"
done
这应该符合 POSIX 标准。这是不是可重入。它会不是如果您有任何两个名为something.txt
和 的文件,则可以工作something.txt.txt
。