【发布时间】:2015-05-05 03:26:18
【问题描述】:
我正在编写一个 shell 脚本,它将所有文件从命令行复制到一个目录。如果命令行参数包含任何重复文件,我想提示用户覆盖现有文件(它现在应该在目录中),不要复制它,或者重命名它然后复制它。
解决这个问题的最佳方法是什么?
这是我在想的一些伪代码:
for var in "$@"
do
for file in "$dirName" #unsure about this syntax too
do
if [ file or directory with name "$fileName" exists]; then
prompt user with options #i can handle this part :)
else
mv $var $dirName
fi
done
done
【问题讨论】:
-
忽略问题让
cp解决? -
cp会用正在复制的文件覆盖目录中的文件,不是吗? -
使用
cp -i表示“交互式” - 它会在覆盖之前提示。 -
但如果我说“不”,那么它不会移动该目录中的文件。我想为用户提供覆盖、重命名或不执行任何操作的选项。
标签: bash file shell scripting duplicates