Bash脚本将文件移动到废纸篓,如果存在则追加名称

时间:2018-04-24 02:59:30

标签: bash

我尝试编写一个bash脚本来提示用户输入文件名,如果该文件存在于垃圾箱中,请递增文件名,然后将其移至垃圾箱。例如,如果" file1"如果" file1-1"存在,它将增加到" file1-2",依此类推。

这是我到目前为止所做的,但它不起作用:

 #!/bin/bash
 echo "Select file name: "
 read fileName
 if $fileName in ~/.TRASH
     then
     echo "$fileName found."
     rename $fileName=$fileName+1
     trash $fileName
     echo "$fileName has been moved to trash."  
 else
     echo "$fileName not found."
     trash $fileName
     echo "$fileName has been moved to trash."
 fi

我假设"如果"或重命名/增量计数器,但对于我的生活,我无法弄清楚。

1 个答案:

答案 0 :(得分:0)

if $fileName in ~/.TRASH不是一件事。你要做的是:

if [[ -e ~/.TRASH/"${fileName}" ]]

rename $fileName=$fileName+1也不是一回事。首先,您需要loop through the files backwards以避免覆盖具有更高编号的文件,然后您需要拉出文件名的相关部分,例如使用fileNumber="${fileName#*-}",然后您可以使用{递增它{1}},最后您可以使用let fileNumber++移动它。