Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash-使用目标从txt文件移动文件_Bash_Shell_Mv - Fatal编程技术网

Bash-使用目标从txt文件移动文件

Bash-使用目标从txt文件移动文件,bash,shell,mv,Bash,Shell,Mv,我有一个文本文件(log.txt),其中包含我希望文件结束的文件路径列表 /root/NewDir/Testfile.txt /root/NewDir/Testfile2.txt /root/NewDir2/Alsoatest.txt ... 这些文件当前与log.txt位于同一位置 /root/Dustbin/log.txt /root/Dustbin/Testfile.txt /root/Dustbin/Testfile2.txt /root/Dustbin/Alsoatest.txt .

我有一个文本文件(log.txt),其中包含我希望文件结束的文件路径列表

/root/NewDir/Testfile.txt
/root/NewDir/Testfile2.txt
/root/NewDir2/Alsoatest.txt
...
这些文件当前与log.txt位于同一位置

/root/Dustbin/log.txt
/root/Dustbin/Testfile.txt
/root/Dustbin/Testfile2.txt
/root/Dustbin/Alsoatest.txt
...
我正在尝试创建一个脚本,它可以只获取文件名,并将指定的文件移动到log.txt文件中指定的位置

例如:

# restore Testfile.txt
结果应该是Testfile.txt从/root/Dustbin/移动。。。到/root/NewDir/

我是bash/shellscript的新手,已经尝试研究了几个小时,但完全被难倒了! 我知道我需要使用“mv”函数,但我不确定如何通过匹配文件名,用log.txt文件中指定的值填充目标

有没有人能给我指出正确的方向?

试试:

#!/bin/bash 

dustbin="/root/Dustbin"
file="$1"

mv $dustbin/$file $(grep "/$file$" $dustbin/log.txt)
根据您的需求,您可以改进脚本,在“mv”之前添加一个“mkdir”

试试:

#!/bin/bash 

dustbin="/root/Dustbin"
file="$1"

mv $dustbin/$file $(grep "/$file$" $dustbin/log.txt)

根据您的需求,您可以改进脚本,在“mv”之前添加一个“mkdir”

因此,不存在编写代码的问题,这个问题可能会让您从正确的方向以及
basename
函数开始。如果遇到问题,请将有问题的代码添加到此问题中,我们将帮助循环查看
log.txt
,并对每个文件名调用
basename
,这将返回不带目录的文件名。如果与您尝试还原的名称匹配,则使用文件名作为
mv
的目标。除了尝试搜索类似回答的问题和研究
mv
的其他建议外,请查看并重命名。因此,不存在编写代码的文件名,这个问题可能会让您从正确的方向以及
basename
函数开始。如果遇到问题,请将有问题的代码添加到此问题中,我们将帮助循环查看
log.txt
,并对每个文件名调用
basename
,这将返回不带目录的文件名。如果该名称与您尝试还原的名称相匹配,则将该文件名用作
mv
的目标。除了尝试搜索类似已回答问题和研究
mv
的其他建议之外,查看并重命名。感谢这一点,它帮助我找到了正确的方向,让我的脚本更接近我想要的方式。感谢这一点,它帮助我找到了正确的方向,让我的脚本更接近我想要的方式