Linux 用于文件名路径列表的mkdir命令
我有像这样的内容的txt文件Linux 用于文件名路径列表的mkdir命令,linux,bash,shell,ubuntu,Linux,Bash,Shell,Ubuntu,我有像这样的内容的txt文件 /home/username/Desktop/folder/folder3333/IMAGw488.jpg /home/username/Desktop/folder/folder3333/IMAG04f88.jpg /home/username/Desktop/folder/folder3333/IMAGe0488.jpg /home/username/Desktop/folder/folder3333/IMAG0r88.jpg /home/username/De
/home/username/Desktop/folder/folder3333/IMAGw488.jpg
/home/username/Desktop/folder/folder3333/IMAG04f88.jpg
/home/username/Desktop/folder/folder3333/IMAGe0488.jpg
/home/username/Desktop/folder/folder3333/IMAG0r88.jpg
/home/username/Desktop/folder/folder3333/
/home/username/Desktop/folder/
/home/username/Desktop/folder/IMAG0488.jpg
/home/username/Desktop/folder/fff/fff/feqw/123.jpg
/home/username/Desktop/folder/fffa/asd.png
....
这些是文件名路径,也是文件夹的路径。
我想解决的问题是创建所有不存在的文件夹
我想为每个不存在的文件夹调用mkdir命令
我怎样才能轻松地做到这一点
谢谢那么
for p in $(xargs < somefile.txt);
do
mkdir -p $(dirname ${p})
done
p的单位为$(xargs
这可以在本机bash
语法中完成,无需调用任何外部二进制文件:
while read line; do mkdir -p "${line%/*}"; done < infile
也可以在没有循环的情况下完成(提供的输入文件不是很大):
xargs-n 1 dirname如果您有文件名为“file1”的文件,您可以尝试以下一行:
cat file1 |xargs -I {} dirname "{}"| sort -u | xargs -I{} mkdir -p "{}"
使用:
xargs -I{} mkdir -p "{}"
确保使用perl one liner创建带空格的偶数路径名,并且:
有一些更好的方法来处理这个问题,bash
有非常成熟的文件处理功能,但是这很好而且很短。xargs
当然是不必要的<代码>读取p时。。。或者您可以sed的%[^/]*$%%'somefile.txt | xargs mkdir-p
xargs -n 1 dirname <somefile.txt | xargs mkdir -p
cat file1 |xargs -I {} dirname "{}"| sort -u | xargs -I{} mkdir -p "{}"
xargs -I{} mkdir -p "{}"
perl -MFile::Path=make_path -lne 'make_path $_' dirlist.txt