Странное имя каталога, показанное с обратной косой чертой

Большинство терминалов распознает определенную escape-последовательность как попытку изменить заголовок, таким образом, это будет работать:

$ alias foo-with-title='echo -ne "\033]0;foo\007"; foo'
1
18.12.2017, 10:39
5 ответов

Ваше имя каталога, кажется, имеет пространство в нем.

Можно или использовать кавычки:

chown -R zugul "/development /"

Или можно использовать символы ESC:

chown -R zugul /development\ /
1
27.01.2020, 23:40
  • 1
    хорошо, но как я устраняю проблему пространства? Я не могу даже видеть его живая папка. Это запускает 404 ошибки.. –   23.12.2011, 20:42
  • 2
    mv "/development " "/development". Или можно добавить %20 к Вашему URL: foo.com/development%20 –  Blender 23.12.2011, 20:42

Ваше имя каталога заканчивается пространством (вероятно, регулярное пространство, но это мог быть некоторый другой символ пробела как небьющееся пространство). В зависимости от того, каким опциям Вы передали ls, \ или находится в имени файла или указывает, что следующий символ должен быть интерпретирован буквально как часть имени файла.

Вы захотите переименовать каталог:

mv /development\  /development

(отметьте два последовательных пробелов: первой является часть имени файла и заключенный в кавычки предыдущей обратной косой чертой, и второе пространство разделяет эти два аргумента). Или

mv '/development ' /development

Если уже существует названный каталог /development, переместите файлы от /development ​ каталог к /development затем удалите плохо названный каталог (rmdir '/development '). Не упустите конфликты (файлы, существующие в обоих).

После того как Вы уладили проблему именования, заботьтесь о других вещах, таких как владение.

1
27.01.2020, 23:40

Имя файла является неправильным, когда Вы пытаетесь chown; попробуйте вместо этого chown -R zugul development\\\ /.

0
27.01.2020, 23:40

Не думайте, что это принадлежит stackoverflow, но в основном можно сделать одну из 2 вещей:

chown -R zugul /development*

Если у Вас есть несколько / каталогов разработки, это - проблема. Или

chown -R zugul "/development /"

В целом, хотя Вы могли бы не хотеть делать часть каталогов "разработки" / уровень. Они обычно принадлежат /home/zugul/ где-нибудь.

Если Вы не скопировали папку как корень, Вы не будете видеть его в /. Так или Ваша операция перестала работать или папка в некотором другом каталоге. Если это находится в некотором другом каталоге затем, необходимо сделать:

cd <dest directory>
sudo chown -R zugul "development /"
0
27.01.2020, 23:40
  • 1
    хорошо, но как я устраняю проблему пространства? Я не могу даже видеть его живая папка. Это запускает 404 ошибки.. –   23.12.2011, 20:42
  • 2
    Посмотрите редактирование к ответу. Я думаю, что Вы перепутали вещи немного. Кажется смешиванием оболочки UNIX/Linux с Веб-доступом. Таким образом, Вы могли бы хотеть разъяснить проблему перед продолжением. –   23.12.2011, 20:44

Вместо того, чтобы угадывать, что это за символ, используйте что-то, что заключает в кавычки специальные символы. Мне нравится этот метод:

ls --quoting-style=shell-escape

Это показывает, что это на самом деле (с использованием строк в стиле bash/ksh -$'', которые обрабатывают escape-последовательности ANSII C ). В качестве бонуса это должно дать вам строку в кавычках до -, которую вы можете напрямую передать в chownили что-то еще, что вам нужно сделать в оболочке. Например, вот файл с новой строкой в ​​имени, показывающий вывод ls, а затем использующий предварительно -вывод lsв кавычках для chgrpиrm:

sauer@lightning:/tmp/test> ls -l
total 0
-rw-r--r-- 1 sauer users 0 Aug 14 17:04 a?file
sauer@lightning:/tmp/test> ls -l --quoting-style=shell-escape
total 0
-rw-r--r-- 1 sauer users 0 Aug 14 17:04 'a'$'\n''file'
sauer@lightning:/tmp/test> chgrp docker 'a'$'\n''file'
sauer@lightning:/tmp/test> ls -l --quoting-style=shell-escape
total 0
-rw-r--r-- 1 sauer docker 0 Aug 14 17:04 'a'$'\n''file'
sauer@lightning:/tmp/test> rm -v 'a'$'\n''file'
removed 'a'$'\n''file'

Я бы посоветовал переименовать файл во что-нибудь без странных символов.:)

sauer@lightning:/tmp/test> ls
a??file
sauer@lightning:/tmp/test> ls --quoting-style=shell-escape
'a'$'\t\033''file'
sauer@lightning:/tmp/test> mv -v 'a'$'\t\033''file' regular_filename
renamed 'a'$'\t\033''file' -> 'regular_filename'
0
27.01.2020, 23:40

Теги

Похожие вопросы