我喜欢保存东西,所以我想保存.bash_history
。
我想使用脚本将其复制到目录中。像这儿
#!/bin/bash
#Something here? number=~/Desktop/Coding/Bash\ Histories/bash_history "?"
cp ~/.bash_history ~/Desktop/Coding/Bash\ Histories/bash_history #$number "?"
但我已经有一个名为bash_history
、bash_history 2
等的文件bash_history 3
。
我希望它检查最大的数字,在本例中为 5。如果bash_history 5
存在,那么我希望它命名它bash_history 6
。
如果是的话,bash_history 11111
我希望它能够命名bash_history 11112
。
我不确定我应该在这里使用哪个命令,if
结合使用grep
什么命令?
答案1
您可以使用 ls
、sort
和tail
来完成此操作cut
。
首先重命名bash_history
为,bash_history 1
以便所有文件都有一个编号。然后运行以下命令复制下一个文件:
#!/bin/bash
D=~/Desktop/Coding/Bash\ Histories
num=$(ls "$D" | cut -d ' ' -f 2 | sort -nr | head -1)
num=$(( num + 1 ))
cp ~/.bash_history "$D/bash_history $num"
仅ls $D
列出“存储”目录中的文件。从每个名称(例如bash_history 16
,不包括路径)中,cut -d ' ' -f 2
拆分' '
并获取第二个字段(数字16
)。以这种方式找到的数字将按-r
数字 () 逆序 ( -n
) 排序,因为字符串10
会排在 之前2
。从该列表中(记住它是相反的),您取第一个,即最大的数字。
您增加该数字并将其用于下一个文件。
我更愿意首先确定一个数量级(例如 5 位数字),然后使用printf %05d $num
自己获取前导零(这使文件按字母顺序排列与数字的顺序相同(至少直到达到 100000 为止))