将子目录文件分别向上移动一级的linux命令是什么
我的服务器上文件的路径结构类似于下图所示 /home/sun/sdir1/mp4/file.mp4 /home/sun/collection/sdir2/mp4/file.mp4 我想将“mp4”的文件升级到一个级别(分别升级到sdir1和sdir2) 所以输出应该是, /home/sun/sdir1/file.mp4 /home/sun/collection/sdir2/file.mp4 我不知道该怎么做,所以还没试过 您可以这样做:将子目录文件分别向上移动一级的linux命令是什么,linux,find,mv,Linux,Find,Mv,我的服务器上文件的路径结构类似于下图所示 /home/sun/sdir1/mp4/file.mp4 /home/sun/collection/sdir2/mp4/file.mp4 我想将“mp4”的文件升级到一个级别(分别升级到sdir1和sdir2) 所以输出应该是, /home/sun/sdir1/file.mp4 /home/sun/collection/sdir2/file.mp4 我不知道该怎么做,所以还没试过 您可以这样做: # move all .mp4 files from sd
# move all .mp4 files from sdir1/mp4 to sdir1 directory
user@host:~/home/sun$ mv sdir1/mp4/*.mp4 sdir/
# move all .mp4 files from collection/sdir2/mp4 to collection/sdir2 directory
user@host:~/home/sun$ mv collection/sdir2/mp4/*.mp4 collection/sdir2/
# move only 1 file
user@host:~/home/sun$ mv sdir1/mp4/file.mp4 sdir/
user@host:~/home/sun$ mv collection/sdir2/mp4/file.mp4 collection/sdir2/
我建议您使用
find
之类的工具
cd /home/sun/sdir1/mp4/
find . -name "*" -exec mv {} /home/sun/sdir1/ \;
cd /home/sun/collection/sdir2/mp4/
find . -name "*" -exec mv {} /home/sun/collection/sdir2/ \;
cd /home/sun/sdir1/mp4/
tar cfp - * | (cd ../ ; tar xvvf -)
# Make sure everything looks good
rm -rf mp4
cd /home/sun/collection/sdir2/mp4/
tar cfp - * | (cd ../ ; tar xvvf -)
# Make sure everything looks good
rm -rf mp4
或者,您可以使用tar
和类似的
cd /home/sun/sdir1/mp4/
find . -name "*" -exec mv {} /home/sun/sdir1/ \;
cd /home/sun/collection/sdir2/mp4/
find . -name "*" -exec mv {} /home/sun/collection/sdir2/ \;
cd /home/sun/sdir1/mp4/
tar cfp - * | (cd ../ ; tar xvvf -)
# Make sure everything looks good
rm -rf mp4
cd /home/sun/collection/sdir2/mp4/
tar cfp - * | (cd ../ ; tar xvvf -)
# Make sure everything looks good
rm -rf mp4
有不同的方法来解决你的问题
cd/home/sun/
mv sdir1/mp4/file.mp4 sdir1/
mv sdir2/mp4/file.mp4 sdir2/
cd/home/sun/
mv sdir1/mp4/*.mp4 sdir1/
mv sdir2/mp4/*.mp4 sdir2/
#/bin/bash
#转到所需目录
cd/主页/太阳报/
#对文件夹中的所有子目录执行操作
适用于dir in/home/sun/*/
做
dir=${dir%*/}
mv“$dir”/mp4/*.mp4“$dir”/
#如果要在移动文件后删除子目录,请取消对以下行的注释
#rm-rf“$dir”
完成
保存文件并授予其执行权限:
chmod +x folderIterator.sh
并执行它:
./folderIterator.sh
将文件(或目录)上移一级的命令是:
mv /home/sun/sdir1/mp4/file.mp4 ..
通配符可用于选择更多文件和目录,您还可以一次提供多个目录
mv /home/sun/sdir1/mp4/*.mp4 /home/sun/collection/sdir2/mp4/*.mp4 ..
mv
是移动文件的命令。您是想使用shell脚本批量执行此操作,还是只想每次执行此命令?但我想将多个目录的文件移动到各自的目标中,正如我在问题中所讨论的。@iShaymus,是的,我想批量执行此操作…什么与文件路径一致?他们都在同一个驱动器上吗?他们都有/mp4/文件夹吗?我不仅有这两个目录,它超过5k…但我不想执行命令5k时间…我添加了一个脚本,在/home/sun上的子目录上进行迭代/