나는 물건을 저장하는 것을 좋아해서 저장하고 싶습니다 .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
"storage" 디렉터리에 있는 파일 만 나열합니다. 각 이름( bash_history 16
예: 경로 제외) 에서 두 번째 필드(number )를 cut -d ' ' -f 2
분할하여 가져옵니다 . 문자열이 먼저 나오므로 이 방법으로 찾은 숫자는 숫자순으로() 역순( ) 으로 정렬됩니다 . 해당 목록(반대임을 기억하세요)에서 가장 큰 숫자인 첫 번째 숫자를 선택합니다. 해당 숫자를 증가시켜 다음 파일에 사용합니다.' '
16
-r
-n
10
2
먼저 크기 순서(예: 5자리)를 결정한 다음 앞에 오는 0을 직접 가져오는 데 사용하는 것을 선호합니다 printf %05d $num
(이렇게 하면 파일이 알파벳순으로 숫자 순서와 동일해집니다(적어도 100000에 도달할 때까지)).