下载具有简单名称的文件,而不覆盖可能存在的同名文件

下载具有简单名称的文件,而不覆盖可能存在的同名文件

在带有 Bash 的 CentOS 中,我下载了一个文件,其文件名非常简单,install.sh.

尽管在我的情况下极不可能,但理论上,这仍然可以覆盖某些具有相同名称的现有文件。

你会如何解决这个问题?


如果我理解正确的话解决这个问题的一种方法是:

cd DOWNLOADS &&
source <( wget --quiet -O - 'URL/install.sh' )

但作为一名非专业系统管理员,我寻求一种更“基本”或“简单”的方法,因为我很难使用语法<(...),更不用说使用各种选项下载到标准输出了。

我在想:

  • 下载具有随机创建的长文件名的文件
  • 对文件执行操作(例如cpmv更改名称)
  • 删除下载的文件

也许像这样的伪代码:

random_name=(wget -O kjghfkjdhsgkj.sh URL) # How to create random name by the computer?
destination=(cp "${random_name}" DESTINATION)
mv "${destination}" NEW_DESTINATION
rm "${random_name}"

答案1

mktemp正是在这里让我们创建一个具有“半随机”模板化文件名的文件。看man mktemp;对于清洁部分,请参见trap

相关内容