如何在获取 find 命令返回的结果后在 while 循环中复制文件?
How to copy files in a while loop after getting results returned by find command?
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
我试图遍历 find 命令找到的系统中具有特定扩展名(例如:txt)的每个文件。当它遍历每个文件时,我想检查用户所需目录中是否已经存在同名文件。否则,它将复制文件。但是,cp 命令不起作用。这是我目前所拥有的:
find . -type f -name "*.$fileType"| while read file; do
fname=`basename $file`
echo $fname
echo $file
if [ -e "$path/$directory/$fname" ]; then
echo "$fname exist"
else
cp $file $path/$directory
fi
done
由于变量中有空格,因此应将它们正确地用引号引起来。
find . -type f -name "*.$fileType"| while read file; do
fname="$(basename $file)"
echo "$fname"
echo "$file"
if [ -e "$path/$directory/$fname" ]; then
echo "$fname exist"
else
cp "$file" "$path/$directory"
fi
done
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
我试图遍历 find 命令找到的系统中具有特定扩展名(例如:txt)的每个文件。当它遍历每个文件时,我想检查用户所需目录中是否已经存在同名文件。否则,它将复制文件。但是,cp 命令不起作用。这是我目前所拥有的:
find . -type f -name "*.$fileType"| while read file; do
fname=`basename $file`
echo $fname
echo $file
if [ -e "$path/$directory/$fname" ]; then
echo "$fname exist"
else
cp $file $path/$directory
fi
done
由于变量中有空格,因此应将它们正确地用引号引起来。
find . -type f -name "*.$fileType"| while read file; do
fname="$(basename $file)"
echo "$fname"
echo "$file"
if [ -e "$path/$directory/$fname" ]; then
echo "$fname exist"
else
cp "$file" "$path/$directory"
fi
done