Любопытный запрос, я думаю, вы бы более счастливы отключить рабочий стол, а затем использовать выпадающий терминал, такой как Guake.
Предотвращение работы Nautilus с рабочим столом с помощью этого command:
gsettings set org.gnome.desktop.background show-desktop-icons false
Вам может быть лучше использовать только выпадающий терминал, например Guake [! d1]. Он активируется с помощью горячей клавиши, а затем прячется вместе с ней. Он очень настраиваемый, предлагая варианты трансперенсировки, параметры размера и цветовые варианты среди других.
Если вам не нравится Guake, есть еще много терминалов сбрасывания, но Guake - мой выбор.
Ссылка:
[d13 ] Как отключить nautilus от обработки рабочего стола?
В этом конкретном случае, когда у вас есть только одно слово в строке, вы также можете сделать:
xargs touch < file
Обратите внимание, что это сломается, если ваши имена файлов могут содержать пробелы. Для таких случаев используйте это вместо:
xargs -I {} touch {} < file
Просто для удовольствия, вот пара других подходов (оба из которых могут обрабатывать произвольные имена файлов, включая строки с пробелами):
Perlperl -ne '`touch "$_"`' file
Awk awk '{printf "" > $0}' file
Обратите внимание, что в Linux и подобных системах расширение является необязательным для подавляющего большинства файлов. Нет причин добавлять расширение .txt в текстовый файл. Вы свободны в этом, но это не имеет никакого значения. Итак, если вы хотите расширение в любом случае, используйте один из:
xargs -I {} touch {}.txt < file
perl -ne '`touch "$_.txt"`' file
awk '{printf "" > $0".txt"}' file
AWK также подходит для этой задачи:
testerdir:$ awk '{system("touch "$0)}' filelist
testerdir:$ ls
filelist george james john stewert
testerdir:$ awk '{system("touch "$0".txt")}' filelist
testerdir:$ ls
filelist george.txt james.txt john.txt stewert.txt
george james john stewert
Другой способ, tee. Обратите внимание, что этот подход будет разорван, если строка содержит более одной строки в списке файлов.
testerdir:$ echo "" | tee $(cat filelist)
testerdir:$ ls
filelist george james john stewert
В качестве альтернативы, </dev/null tee $(cat filelist) также может быть выполнено, если вы хотите избежать трубопроводов
cp /dev/null (Поскольку я демонстрирую, что это работает с именами файлов, которые содержат пробелы):
testerdir:$ cat filelist | xargs -I {} cp /dev/null "{}"
testerdir:$ ls
filelist FILE WITH SPACES george james john stewert
testerdir:$ ls FILE\ WITH\ SPACES
FILE WITH SPACES
Скажем, у меня есть ответ;)
awk '{system("touch \""$0".txt\"")}' file
Водонепроницаемость также с пробелами и суффиксом ;)