Что означает q значит в выходе команд ls?

450 МБ - это немного для корневого + загрузочного раздела в современной системе amd64. Если вы хотите установить несколько ядер, вам придется реорганизовать разделы. Даже если вы этого не сделаете, это будет довольно сложно.

Учитывая имеющиеся у вас разделы, я предлагаю переместить корневой раздел в то, что сейчас называется / var . Поскольку вы собираетесь переместить корневой раздел, загрузитесь с загрузочного носителя (например, SystemRescueCD ). Смонтируйте / dev / sda6 и / dev / sda8 , например, на / media / sda6 и / media / sda8 . Затем:

  1. Создайте каталог / var : mkdir / media / sda8 / var
  2. Переместите все в старом разделе / var в этот новый подкаталог: mv / media / sda8 / * / media / sda8 / var (сам / var будет пропущен)
  3. Переместите все, кроме / boot из старого корня в старый раздел var: mv / media / sda6 / [^ bv] * / media / sda6 / bin / media / sda8 /
  4. Должен быть только / boot и пустой / var в старом корневом разделе.Переместите все из / boot в корень раздела: mv / media / sda6 / boot / * / media / sda6
  5. Удалите ложные каталоги: rmdir / media / sda6 / boot / media / sda6 / var и создайте нужный: mkdir / media / sda8 / boot
  6. Отредактируйте файл fstab (теперь в / media / sda8 / etc / fstab ), удалите запись для / var , добавьте одну для / boot и при необходимости исправьте запись для / .
  7. Обновите конфигурацию загрузчика. Самый простой способ сделать это правильно - запустить оба сценария update-grub (для регенерации grub.cfg ) и grub-install (для восстановления первого - этап загрузчика, чтобы он знал, где найти остальные, включая grub.cfg ). Но для этого вам нужно представить ему правильное дерево каталогов.

     mount --rbind / dev / media / sda8 / dev 
    mount --rbind / proc / media / sda8 / proc 
    mount --rbind / sys / media / sda8 / sys { {1}} mount --bind / media / sda6 / media / sda8 / boot 
    chroot / media / sda8 
    mount / usr 
    update-grub 
    grub -install / dev / sda 
     

Теперь перезагрузитесь.

В качестве альтернативы вы можете переместить / boot в / var ; но это менее распространенная конфигурация, поэтому вам, возможно, придется настроить некоторые файлы конфигурации загрузчика.

В наши дни отделять / usr от / довольно бессмысленно. Разделение / var от / никогда не было действительно полезным (они оба должны быть установлены для чтения и записи в большинстве настроек).

В будущем я рекомендую использовать LVM для разделов Linux. Это намного более гибко.

0
18.12.2018, 21:36
2 ответа

Это означает, что ваш файл называется <F6>q.

Это , а не неотображаемые символы, как предполагают ответы на комментарии -и другие фактические ответы. Вы можете видеть их отображенными, прямо перед вами. & #9786;

В любом случае, <F6>не является какой-либо из форм, которые lsвыдает для неотображаемых символов.

[user@server2 ~]$ cat <F6>q
-bash: F6: No such file or directory
[user@server2 ~]$ vim <F6>q
-bash: F6: No such file or directory
[user@server2 ~]$

Вам необходимо изучить синтаксис оболочки.

Вы запускаете команды catи vim, стандартные входные данные которых перенаправляются из файла F6, а их стандартные выходные данные перенаправляются в файл qбез фактических аргументов команды. Прежнее перенаправление терпит неудачу,потому что нет файла с именем F6, ваш файл скорее называется <F6>q, и последнее перенаправление, следовательно, вообще не предпринимается.

Вот та же самая команда, но с пробелами, показывающими, как ее анализирует оболочка:

[user@server2 ~]$ cat < F6 > q
-bash: F6: No such file or directory
[user@server2 ~]$ vim < F6 > q
-bash: F6: No such file or directory
[user@server2 ~]$

Чтобы передать имя файла, содержащее метасимволы оболочки, в команду, как -, без ответа оболочки на метасимволы, они должны быть заключены в кавычки:

vim '<F6>q'
или экранированы:
vim \<F6\>q

Учитывая, что происходит в VIM, когда вы нажимаете функциональную клавишу в exрежиме ввода команд, довольно легко случайно сгенерировать файлы с такими именами с помощью VIM.

3
28.01.2020, 02:23

Когда вы используете обычныйls(или его псевдонимll)и вывод идет на терминал, RHEL 7 lsпреобразует управляющие символы и другие непечатаемые -символы в видимую форму. Это, скорее всего, то, что вы видите. Если вывод идет на что-то кроме терминала, эта замена по умолчанию не произойдет.

Вы можете использовать ls -qдля замены непечатаемых -символов вопросительными знаками. Вопросительный знак является подходящим подстановочным знаком оболочки для отдельных символов, поэтому, если вы запустите ls -q /home/user/и увидите ?qв качестве ответа, это означает, что ваш загадочный файл, вероятно, содержит непечатаемый символ со значением ASCII 0xF6 в качестве первого символа.

Вы также можете использовать ls -bдля получения непечатаемых символов -, представленных в виде escape-кодов стиля C -, которые могут не использоваться напрямую в оболочке, но позволяют точно идентифицировать каждый непечатаемый символ.

Вероятно, вы захотите переименовать файл во что-то более удобное:

cd /home/user
mv ?q possible-typo

Он мог быть создан в результате неправильного ввода команды vi:wqкак :w<extra character>q. Последняя форма команды интерпретируется как «сохранить текущий файл, используя имя <extra character>q» вместо «сохранить, используя существующее имя, а затем выйти».

0
28.01.2020, 02:23

Теги

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