移动并创建目录

移动并创建目录

我知道它是一个大经典,但我没有找到我关心的确切情况

我需要一个可以像这样调用的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

不理想,但是,好吧

相关内容