8 bash tcsh shell-script files
我有父文件夹,在这个文件夹内我有 4 个文件
ParentFolder
File1.txt
File2.txt
File3.txt
File4.txt
Run Code Online (Sandbox Code Playgroud)
我想在父文件夹中创建子文件夹并携带文件的名称,然后将携带它的文件夹中的每个文件移动到如下名称:
ParentFolder
File1
File1.txt
File2
File2.txt
File3
File3.txt
File4
File4.txt
Run Code Online (Sandbox Code Playgroud)
我怎样才能在批处理或 tsch 脚本中做到这一点?我试过这个脚本:
#!/bin/bash
in=path_to_my_parentFolder
for i in $(cat ${in}/all.txt); do
cd ${in}/${i}
ls > files.txt
for ii in $(cat files.txt); do
mkdir ${ii}
mv ${ii} ${in}/${i}/${ii}
done
done
Run Code Online (Sandbox Code Playgroud)
Gil*_*il' 16
你把这个复杂化了。我不明白你想要做什么all.txt
。要枚举目录中的文件,请不要调用ls
:这更复杂并且无论如何都不能可靠地工作。使用通配符模式。
要.txt
去除文件名末尾的扩展名 ( ),请使用变量替换的后缀去除功能。
始终在变量替换周围加上双引号。
cd ParentFolder
for x in ./*.txt; do
mkdir "${x%.*}" && mv "$x" "${x%.*}"
done
Run Code Online (Sandbox Code Playgroud)