如何将文件移动到参数路径?

时间:2012-03-01 00:26:15

标签: linux unix opensuse

说我有以下代码,

mkdir $1
# Output that the folder was created and the name
echo "The folder was created and name is: `echo $1`"

touch $2
# Output that the file was created and the name
echo "The file was created and name is: `echo $2`"

如何将创建的文件移动到创建的参数文件夹?

5 个答案:

答案 0 :(得分:2)

touch "$1/$2"

假设$2是一个简单的名称。或者,如果您必须使用mv,那么:

touch "$2" &&
mv "$2" "$1"

或者:

touch "$2" &&
mv "$2" "$1/$2"

如果$2不是简单的文件名但包含一些路径信息,您可能需要考虑会发生什么。在这种情况下,第一个“触摸和移动”组合可以说更安全。请注意,在移动创建的文件之前,这些版本会检查touch是否成功。另请注意,如果文件已存在,touch可正常工作,并且该文件将移动到目标目录。如果文件不存在(还),你必须再努力工作。这就是这些问题的问题 - 有许多情况可能需要处理,但可能不适用于家庭作业问题(但必须考虑更接近'生产代码')。

否则,如果$2可能是包含路径信息的名称:

mkdir "$1" || exit 1
base=$(basename "$2")
touch "$1/$base" || exit 1

或者,如果你想要搬家,那么:

mkdir "$1" || exit 1
touch "$2" || exit 1
mv "$2" "$1"

注意文件名周围的引号;即使名称包含空格或其他笨拙的字符,它们也会起作用。另请注意,如果$2指定目录,mv版本的东西将移动(新创建的)$1目录下的整个目录。

答案 1 :(得分:2)

您需要使用命令mv

即。 mv $2 $1

答案 2 :(得分:0)

mv $2 $1会成为您想要的吗?

答案 3 :(得分:0)

mv $2 $1
echo "The file $2 was moved to $1"

请注意,您不需要在每个命令中使用第二个echo

echo "The folder was created and name is: $1"

答案 4 :(得分:0)

检查哪些命令可用于复制,或者在这种情况下,移动您创建的文件。还有什么阻止你直接在创建的文件夹中创建文件?

相关问题