Làm thế nào để bạn tạo một tập tin với một tên trống?


9

Tôi không biết làm thế nào, nhưng tôi đã tạo một tệp có tên tệp trống, tôi nghi ngờ có một khoảng trắng ở đó (tôi sẽ giải thích lý do tại sao ở cuối):

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 $

Tôi đã hỏi trên #linux cách xóa tệp và một người đề nghị tôi chuyển tất cả các tệp khác đi sau đó sử dụng hoàn thành tab, điều này mang lại một hành vi rất thú vị:

# 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 $

Nếu có một khoảng trắng trong tên tệp thì nó sẽ được thay thế bằng \ "" khi tôi nhấn phím tab, nhưng không được.


5
Đó là một thư mục không phải là một tập tin rõ ràng nó chứa ba tập tin.
Bananguin

2
Giả sử bạn vẫn giữ thư mục nơi bạn chuyển mọi thứ đi nhưng tập tin trống, điều gì xảy ra khi làm gì file *?
Joseph R.

Không may là tôi đã đổi tên tập tin bằng lệnh mv.
ychaouche

4

2
Câu hỏi này không phải là một bản sao của câu hỏi đó.  Câu hỏi này là về các kỹ thuật thực tế để xử lý một tệp (hoặc thư mục) được tạo ngẫu nhiên, tên không chứa ký tự in.  Câu hỏi khác là một cuộc thảo luận lý thuyết, giả thuyết, lan man về những cách mà bạn có thể tạo ra một tệp như vậy nếu bạn muốn và không nói gì về việc xử lý hậu quả.
G-Man nói 'Phục hồi Monica'

Câu trả lời:


14

Không thể có một tập tin với một tên trống. Những gì bạn có là một tập tin có tên hoàn toàn bao gồm các ký tự trống hoặc không in được.

Để xem chính xác tên tập tin là gì, hãy chạy LC_CTYPE=C ls -b. Điều này thay thế tất cả các ký tự trống hoặc không in được bằng cách thoát bát phân. Ví dụ: một tệp có tên là một không gian có độ rộng bằng không sẽ được liệt kê dưới dạng \342\200\213.

Bạn có thể cô lập tệp này với một quả cầu loại trừ các tệp có tên đẹp. Ví dụ: bạn có thể thử liệt kê các tệp có tên không bắt đầu bằng một chữ cái.

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

Đừng quên tùy chọn -d, để lsliệt kê chính thư mục đó chứ không phải nội dung của nó.

Bạn nên đổi tên tập tin để có một tên hợp lý. Bạn có thể dựa vào sự hoàn thành của vỏ của bạn hoặc sử dụng một quả cầu chỉ khớp với tệp này.

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

5

Nó có thể là một thư mục chỉ có khoảng trắng hoặc ký tự không in trong tên. Ngoài ra, có vẻ như nó chỉ có một mục trong đó, ngoài '.' và '..', đó là lý do tại sao bạn thấy '3' trong cột thứ hai của đầu ra của lệnh đầu tiên. Bạn luôn có thể sử dụng statđể in tên của thư mục, với : stat -f "'%N'" *. Nếu nó không thể in được, bạn có thể phải đưa nó vào cat -vhoặc od -cđể xem nó thực sự là gì.

Để xóa nó, có thể bạn sẽ phải chạy rmdir -- 'dirname'(thay thế 'dirname' bằng tên của thư mục. Bạn có thể cần phải sử dụng các khối u nếu nó có tên không thể in được trong đó), mặc dù như tôi đã nói trước đây, nó dường như có nội dung nên bạn sẽ phải xuống thư mục đó cd -- 'dirname'và kiểm tra nội dung của nó.

Tôi sẽ đề nghị bạn tránh sử dụng bằng rm -rfmọi giá, vì vấn đề đặt tên thư mục rất dễ gây rối.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.