빈 이름으로 파일을 어떻게 만드나요?


9

방법을 모르겠지만 빈 파일 이름으로 파일을 만들었습니다. 여기에 공백이 있는지 의심합니다 (마지막 이유를 설명하겠습니다).

chaouche@karabeela /mnt/ubuntu/storage $ ls
total 352K
drwx------  3 chaouche chaouche 4.0K Feb 12 11:00
drwxr-xr-x  4 chaouche chaouche 4.0K Apr 14 23:13 AUDIO
drwxr-xr-x  5 chaouche chaouche 4.0K Jul 20 22:25 BACKUPS
-rw-r--r--  1 chaouche chaouche 310K Jun 15 13:00 cv_yassine_chaouche_2012.pdf
drwxr-xr-x  2 chaouche chaouche 4.0K Jun 10 22:16 Mageia-3-i586-DVD
drwxr-xr-x  5 chaouche     1001 4.0K Oct 12  2012 MUSIQUE
drwxr-xr-x 15 chaouche chaouche 4.0K Oct 27  2012 PARISVIII
drwxr-xr-x  6 chaouche chaouche 4.0K Jun 12 18:33 SABAYON
drwxr-xr-x  5 chaouche chaouche 4.0K Jun 15 13:23 SIFTECH
drwxr-xr-x  5 chaouche chaouche 4.0K Feb  6 15:11 TOILES
drwxr-xr-x  4 chaouche chaouche 4.0K Jul 17 17:21 VIDEOS
chaouche@karabeela /mnt/ubuntu/storage $

나는 #linux에 파일을 제거하는 방법을 물었고 사람은 다른 모든 파일을 멀리 옮긴 다음 탭 완성을 사용하여 매우 흥미로운 동작을 제안했습니다.

# with tab completion
chaouche@karabeela /mnt/ubuntu/storage $ ls /
total 45M
-rwxr-xr-x  1 chaouche chaouche  34M Jan 16  2013 inkscape-0.48.4-1-win32.exe
-rwxr-xr-x  1 chaouche chaouche 8.6M Feb  4 11:42 mypaint-1.0.0-win32-installer.exe
-rwxr-xr-x  1 chaouche chaouche 2.7M Jan 17  2013 pdftkb_setup.exe

# without tab completion, wrote "/" by hand
chaouche@karabeela /mnt/ubuntu/storage $ ls /
total 212K
-rw-r--r--   1 root root    0 Apr 15  2012 1
drwxr-xr-x   2 root root 4.0K Dec  9  2012 bin
drwxr-xr-x   3 root root 4.0K Jun 15 12:10 boot
-rw-------   1 root root  74K Jul  1  2011 dead.letter
drwxr-xr-x  19 root root 4.2K Jul 20 20:14 dev
drwxr-xr-x 117 root root  12K Jul 20 21:30 etc
drwxr-xr-x   4 root root 4.0K Jun 12 18:40 home
drwxr-xr-x   2 root root 4.0K Jun  8  2011 initrd
drwxr-xr-x  20 root root  12K Dec  9  2012 lib
drwx------   2 root root  16K Jun  7  2011 lost+found
drwxr-xr-x   4 root root 4.0K Jul  3 01:56 media
drwxr-xr-x   9 root root 4.0K Apr 15 00:06 mnt
drwxr-xr-x   8 root root 4.0K Jun 30 23:19 opt
dr-xr-xr-x 198 root root    0 Jun 15 13:10 proc
drwxr-x---  28 root root 4.0K Jul 20 21:42 root
drwxr-xr-x   2 root root  12K Dec  9  2012 sbin
drwxr-xr-x   2 root root 4.0K Apr  3  2011 srv
drwxr-xr-x  12 root root    0 Jun 15 13:10 sys
-rw-r--r--   1 root root    0 Jun 12 18:40 thisismageia
drwxrwxrwt  69 root root  36K Jul 20 22:04 tmp
drwxr-xr-x  14 root root 4.0K Nov  6  2011 usr
drwxr-xr-x  18 root root 4.0K Jul  2  2011 var
chaouche@karabeela /mnt/ubuntu/storage $

파일 이름에 공백이 있으면 탭 키를 눌렀을 때 \ ""로 바뀌었을 것입니다.


5
분명히 파일이 아닌 디렉토리입니다. 세 개의 파일이 있습니다.
Bananguin

2
빈 파일을 제외한 모든 것을 옮긴 디렉토리를 계속 유지했다고 가정하면 어떻게됩니까 file *?
Joseph R.

불행히도 mv 명령으로 파일 이름을 바꿨습니다.
ychaouche


2
이 질문은 그 질문과 중복되지 않습니다.  질문은 이름에 인쇄 문자가 포함되지 않은 실수로 작성된 파일 (또는 디렉토리)을 처리하는 실제 기술에 관한 것입니다.  다른 질문 은 당신이 원한다면 그런 파일을 만들 수있는 방법에 대한 이론적이고 가설적인 토론입니다.
G-Man, 'Reinstate

답변:


14

이름이 비어있는 파일을 가질 수 없습니다. 당신이 가진 것은 이름이 완전히 공백이거나 인쇄 불가능한 문자로 구성된 파일입니다.

파일 이름이 정확히 무엇인지 보려면을 실행하십시오 LC_CTYPE=C ls -b. 이것은 공백 또는 인쇄 불가능한 모든 문자를 8 진 이스케이프로 대체합니다. 예를 들어, 이름이 단일 폭이 0 인 파일은로 표시됩니다 \342\200\213.

이름이 좋은 파일을 제외하는 glob으로이 파일을 분리 할 수 ​​있습니다. 예를 들어 이름이 문자로 시작하지 않는 파일을 나열 할 수 있습니다.

chaouche@karabeela /mnt/ubuntu/storage $ ls -d [^A-Za-z]*

옵션을 잊지 마십시오 . 디렉토리 자체가 아닌 내용 -dls나열됩니다.

적절한 이름을 갖도록 파일 이름을 바꿔야합니다. 쉘의 완성에 의존하거나이 파일과 일치하는 glob를 사용할 수 있습니다.

mv [^A-Za-z]* windows-programs

5

이름에 공백이나 인쇄 할 수없는 문자 만있는 디렉토리 일 수 있습니다. 또한 '.'이외의 항목이 하나만있는 것 같습니다. 그리고 '..'이기 때문에 첫 번째 명령 출력의 두 번째 열에 '3'이 표시됩니다. 다음과 같이 항상 stat디렉토리 이름을 인쇄하는 데 사용할 수 있습니다 stat -f "'%N'" *. 인쇄 할 수없는 경우 파이프로 연결 cat -v하거나 od -c실제 내용을 확인해야 할 수 있습니다.

제거하려면 아마도 rmdir -- 'dirname'(디렉토리 이름으로 'dirname'을 대체하십시오. 인쇄 할 수없는 이름이있는 경우 glob를 사용해야 할 수도 있습니다), 이전에 말했듯이 내용이있는 것처럼 보입니다. 그 디렉토리로 내려 가서 cd -- 'dirname'내용을 검사해야합니다.

rm -rf디렉토리 이름 지정 문제가 엉망이기 때문에 모든 비용을 사용하지 않는 것이 좋습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.