Как иметь косую черту в имени файла?

Я понимаю, что это, скорее всего, сломает и запутает мою систему, но возможно ли назвать или переименовать файл так, чтобы он имел /s в его названии (это нужно для файла, который должен идти на столь же сумасшедший сервер - ну, вроде, это скорее сумасшедший обходной путь)? Я запускаю Ubuntu GNOME 15.10 с GNOME 3.18, и я пытался сделать это с большинством программ, и они либо создают папку с файлом, потому что они обрабатывают то, что до / в качестве папки и что после нее, как имя файла, или просто дать мне ошибку.

Причина:

Конкретная причина, по которой я нуждаюсь в этом, заключается в том, что я настроил сервер, который упрям ​​и теперь не изменит свое мнение о том, где находится его конфигурационный файл. Однако я случайно положил / в имени файла, поэтому он считает, что файл конфигурации, скорее всего, находится в ~/configuration/files/config1.conf в ~/configuration/files/con/fig1.conf... так что вы можете сказать, что я должен просто создать папку в files и назовите это con а затем файл конфигурации называется fig1.confОднако сервер в настоящее время даже не позволяет создавать новые каталоги или что-то еще... Так что я думаю, что моя единственная надежда будет заключаться в том, чтобы поставить косую черту в имени файла, пока он не выйдет из блокировки. режим вниз.

3 ответа

Решение

Можно ли назвать или переименовать файл, чтобы он имел /s в своем имени [...]?

Нет, по очевидным причинам.

Например, у вас есть каталог, содержащий:

  • каталог с именем "foo", содержащий файл с именем "bar"
  • файл с именем "foo/bar"
/path/to/foo/bar # file named "bar" in the directory named "foo"
/path/to/foo/bar # file named "foo/bar"

Ссылка на любую из двух была бы неоднозначной.

Если вам интересно, где накладывается ограничение, это на уровне ядра, чтобы соответствовать спецификациям файловой системы.

В общем, любой символ может быть использован в имени файла, кроме / (юникода 002f) а также \0 (юникода 0000) и имена файлов, такие как . а также .. также не разрешены.

В терминале Mac OS вы можете заменить косую черту двоеточием (:) при переименовании, а при просмотре файла в Finder (графическом файловом менеджере) имя файла должно иметь косую черту в том месте, где вы ввели двоеточие. . Это, вероятно, также работает в Linux.

Это может быть сделано, не легко, не хорошо, и не рекомендуется (это создает проблемы при попытке удалить файл.

Просто используйте замену Unicode. Это лучше объяснить на linuxanswers.com.

bash пример оболочки с использованием юникода "дробная косая черта" U+2044

bash# >test$'\xe2\x88\x95'file
bash# ls --show-control-chars
test∕file
bash# ls
test???file

Я не знаю, может ли сервер получить доступ к файлу, но Ubuntu может. Возможно, вам придется использовать псевдоним на стороне сервера, если это возможно. (Не было необходимости касаться установки Windows со времен Windows 95).

Другие вопросы по тегам