У меня такая ситуация в определенном каталоге:
$ ls -al
...
drwxr-xr-x 2 me users 8192 Juni 28 15:27 tmp
-rw-r--r-- 1 me users 439 Jan. 3 2013
...
Как я могу получить доступ ко второй записи, у которой нет имени файла?
У меня такая ситуация в определенном каталоге:
$ ls -al
...
drwxr-xr-x 2 me users 8192 Juni 28 15:27 tmp
-rw-r--r-- 1 me users 439 Jan. 3 2013
...
Как я могу получить доступ ко второй записи, у которой нет имени файла?
Пример прогона для создания файла с именем "неразрывный пробел" и его переименования:
$ ls -1 # Each file on a separate row
testfile
$ touch # I'm actually writing the character u00a0 here
$ ls -1
testfile
$ ls -i # Print inodes
2031842 testfile
2023653
$ find . -maxdepth 1 -inum 2023653 -exec mv {} hithere \;
$ ls -i1
2023653 hithere
2031842 testfile
exec
в его форме имеет смысл только в том случае, если существует только одно совпадение, но номер инода должен быть уникальным в этом разделе, если не существует жестких ссылок на тот же файл. Вы можете проверить это, выполнив сначала команду find без аргументов, чтобы убедиться, что вы получили несколько совпадений. Если это так, вы можете, например, уточнить шаблон find
, чтобы он соответствовал только тому файлу, который вы хотите.
Поскольку переименование не зависит от точных символов имени файла, не должно быть проблем с вводом странных кодовых точек.
Я хотел бы попробовать "ls -1a> /tmp /list" и hexdump, чтобы увидеть, если что-то происходит. Возможно, имя файла - это последовательность пробелов и табуляций. Если hexdump показывает имя файла в виде пробелов (скажем, 1 пробел), то выполните «mv \ somename»
ls -1 ls -1 > /tmp/list cat /tmp/list hexdump /tmp/list 00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 00000000 20 0A {------ . mv \ new {------ ls -1 new