在带有 Bash 的 CentOS 中,我下载了一个文件,其文件名非常简单,install.sh
.
尽管在我的情况下极不可能,但理论上,这仍然可以覆盖某些具有相同名称的现有文件。
你会如何解决这个问题?
如果我理解正确的话解决这个问题的一种方法是:
cd DOWNLOADS &&
source <( wget --quiet -O - 'URL/install.sh' )
但作为一名非专业系统管理员,我寻求一种更“基本”或“简单”的方法,因为我很难使用语法<(...)
,更不用说使用各种选项下载到标准输出了。
我在想:
- 下载具有随机创建的长文件名的文件
- 对文件执行操作(例如
cp
和mv
更改名称) - 删除下载的文件
也许像这样的伪代码:
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
。