我知道它是一个大经典,但我没有找到我关心的确切情况
我需要一个可以像这样调用的mkdir
+命令:mv
mvdir /home/user/Documents/irs.pdf /mnt/work/45/223/insight/irs1970.pdf
与普通mv
命令的工作原理完全相同,只是创建路径而不是no such file or directory
考虑到work/45/223/insight/
不存在并且需要创建
我发现的所有其他命令都不能像这样调用,需要更多信息,需要自己区分路径和文件,或者其他什么
试图:mkdir -p /mnt/work/45/223/insight && mv /home/user/Documents/irs.pdf /mnt/work/45/223/insight/irs1970.pdf
答案1
你在这个问题上的尝试是一次公平的尝试。这是我考虑如何处理它的方法
#!/bin/sh
src=$1
dst=$2
if [ ! -d "$dst" ]
then
dir=${dst%/*} # dir path
[ "$dir" = "$dst" ] && dir=. # but had no dir
mkdir -p "$dir" # create path
fi
mv "$src" "$dst" # move file
将其保存为您的mvdir
某个位置$PATH
,并使其可执行。
可以扩展这个脚本来处理多个源,但我在这里没有这样做
答案2
这不是正确的答案,但我仍然找不到可以完成这项工作的东西
因此,我花了两次时间做了一个解决方法,但谁允许我使用mv
.我完全重新创建了路径,然后移动了文件
find /mnt -type d -print0 | while read -d $'\0' i; do mkdir -p /home/user/Documents$i; done
mv /home/user/Documents/irs.pdf /mnt/work/45/223/insight/irs1970.pdf
不理想,但是,好吧