在ubuntu linux中复制和附加文件
我有两个文件夹,每个文件夹包含351个文本文件,我想将相应的文本从一个文件夹复制到另一个文件夹中的相应文件? 当我使用cat命令时,结果得到一个空文件?有什么问题吗 我的代码是:在ubuntu linux中复制和附加文件,linux,shell,Linux,Shell,我有两个文件夹,每个文件夹包含351个文本文件,我想将相应的文本从一个文件夹复制到另一个文件夹中的相应文件? 当我使用cat命令时,结果得到一个空文件?有什么问题吗 我的代码是: #!/bin/bash DIR1=$(ls 2/) DIR2=$(ls 3/) for each $i in $DIR1; do for each $j in $DIR2; do if [[ $i == $j ]];then sudo cat $i $j >> $j fi done done 2/和3/
#!/bin/bash
DIR1=$(ls 2/)
DIR2=$(ls 3/)
for each $i in $DIR1; do
for each $j in $DIR2; do
if [[ $i == $j ]];then
sudo cat $i $j >> $j
fi
done
done
2/和3/是包含数据的文件夹…
DIR1
和DIR2
分别包含目录2
和3
中的文件名。
除了文件名中可能存在的空格或特殊字符问题外,还必须使用2/$i
和3/$j
$i
和$j
单独引用当前目录中具有相同名称的文件(2
和3
的父目录)
最好不要解析ls
的输出。
您不需要两个嵌套循环
#!/bin/bash
DIR1=2
DIR2=3
for source in $DIR1/*
do
dest="$DIR2/$(basename $source)"
if [ -f "$dest" ]
then
sudo cat "$source" >> "$dest"
fi
done
另见
根据您的需要,最好使用
sudo
运行整个脚本,而不是为每个文件运行sudo
。以上版本将仅以root用户身份执行cat“$source”
。以root用户身份运行整个脚本时,还包括“$dest”DIR1
和DIR2
分别包含目录2
和3
中的文件名。
除了文件名中可能存在的空格或特殊字符问题外,还必须使用2/$i
和3/$j
$i
和$j
单独引用当前目录中具有相同名称的文件(2
和3
的父目录)
最好不要解析ls
的输出。
您不需要两个嵌套循环
#!/bin/bash
DIR1=2
DIR2=3
for source in $DIR1/*
do
dest="$DIR2/$(basename $source)"
if [ -f "$dest" ]
then
sudo cat "$source" >> "$dest"
fi
done
另见
根据您的需要,最好使用
sudo
运行整个脚本,而不是为每个文件运行sudo
。以上版本将仅以root用户身份执行cat“$source”
。当以root用户身份运行整个脚本时,其中还包括“$dest”当我运行上述编辑时,2/$i和3/$j,它会使用类似以下内容更改文件夹3中的文件。。。。。。。你到底跑了什么?我不明白“当我运行上述编辑时,2/$I和3/$j”。我刚刚修复了脚本中basename
命令中的一个错误:必须是$source
而不是$I
是的。。非常感谢,先生……它也会给你这样的东西舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍行…它已经存在于3文件夹文件中,并直接附加到该文件夹中…非常感谢您的帮助。。。当我运行上面的编辑,2/$i和3/$j时,它正在工作,它用类似这样的东西更改文件夹3中的文件。。。。。。。你到底跑了什么?我不明白“当我运行上述编辑时,2/$I和3/$j”。我刚刚修复了脚本中basename
命令中的一个错误:必须是$source
而不是$I
是的。。非常感谢,先生……它也会给你这样的东西舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍舍行…它已经存在于3文件夹文件中,并直接附加到该文件夹中…非常感谢您的帮助。。。它也在起作用,所以你可以看到,(U&L.SE),(SO),(AskU),等等。也可以看到,(U&L.SE),(SO),(AskU),等等。