$ rename 's/./ /g' *
$ ls -l
total 6832616
-rw-r--r-- 1 jboo jboo 0 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 43361681 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 47499946 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 55881060 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 90555631 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 39386207 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 147367671 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 64708219 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 74487434 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 102734315 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 63437787 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 102899063 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 158347478 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 79617708 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 70734588 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 74811527 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 116806547 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 142705146 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 525401910 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 84534720 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 91861219 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 333548107 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 83682222 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 142117082 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 361824861 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 168574047 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 69705069 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 57178994 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 185741017 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 228484548 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 268336818 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 178709785 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 201254796 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 461899931 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 302733730 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 135959214 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 175477963 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 120373878 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 82542816 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 212611146 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 206069847 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 246377910 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 266923675 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 329243380 Sep 28 01:44
보시다시피 파일은 여전히 존재하지만 이제는 보이지 않습니다. 누구든지 이름을 다시 바꿀 수 있는 방법을 알고 있나요?
답변1
댓글에서 짐작할 수 있듯이 이제 모든 파일 이름은 공백입니다. 실제로 이 과정에서 일부 파일이 손실될 수도 있습니다.
첫 번째 옵션은 백업을 보는 것입니다. 파일을 잃어버렸을 수 있으므로 백업은 해당 파일에 대한 실제 솔루션입니다. 사용 가능한 파일의 최신 버전이 있을 수 있으므로 모든 것을 덮어쓰지 마십시오. Kamil을 사용하여 rename 's/ /n/g' *
새 파일 이름을 비교하십시오. 참고로 문자 수만 볼 수 있습니다!
백업이 없으면 다음 단계는 명령입니다 file
. (아마도) 어떤 유형의 파일이 있는지 알려줄 것입니다. 그런 다음 올바른 뷰어를 사용하여 파일 내용을 보는 문제가 있습니다. 실제 이름을 다시 만들어야 할 수도 있습니다.
그러나 내가 아는 한 이 작업은 "실행 취소"될 수 없습니다.
답변2
정확한 답변은 아니지만, 혹시 도움이 되실까 싶어 장문의 글처럼 올립니다.
내 셸에서는 이 동작을 확인할 수 없지만 rename
셸과 배포판 간에는 다를 수 있습니다. 공백이 포함된 파일 이름을 변경했으며 이제 보이는 문자로 파일 이름을 변경했다고 가정합니다. 댓글에서도 당신이 mlocate db
.
글로벌 평가는알파벳순으로, 이는 실행 시 rename *
파일 이름 길이가 동일한 파일 a
과 파일 에 대해 b
최종 b
파일이 기록되고 a
손실됨을 의미합니다.
이제 덮어쓴 파일이 아닌 디렉터리를 부분적으로 복원할 수 있지만 남아 있는 파일의 이름을 다시 바꿀 수 있습니다. 아마도 이것은 더 나은 보기를 얻는 데 도움이 될 수 있습니다.
파일에 이름 목록이 있다고 가정해 보겠습니다.
> cat files.txt
a
b
c
file1
file2
some_lucky_file
파일 이름 길이별로 정렬한 다음 알파벳순으로 정렬하고 마지막으로 중복 항목을 제거하여 각 파일 이름 길이에 대해 생존자를 남길 수 있습니다.
awk '{print length($0), $0}' files.txt | sort -nk1 -rk2 | awk '!seen[$1]++'
15 some_lucky_file
5 file2
1 c
기존 파일이어야 합니다. 이 시점에서 이름이 바뀐 파일과 나란히 나열하고 검사할 수 있습니다. 어쩌면 당신은 이미 이것을 하고 있을 수도 있습니다. 행운을 빌어요.