Вот как я подхожу к этому. Так как у меня нет одинаковых файлов, приведенный ниже пример кода предназначен для открытия 4 текстовых файлов с помощью gedit.
Как это работает? Ну, сначала мы найдем файлы в жестко закодированном месте, где файлы могут быть сохранены (переменная FILEPATH). Затем мы переходим к структуре while read. Обратите внимание на использование -print0 и IFS= read -d''. Это очень часто встречается при программировании bash для устранения проблемных имен файлов, содержащих пробелы, непечатаемые символы и т. Д.
Каждый gedit file & вызывает gedit, который отделяется от скрипта с помощью &. Это делает цикл while без остановки.
Что делает останов цикла, это переменная COUNT. Как только мы посчитаем от 0 до некоторого числа, делящегося на 4, переменная MOD, которая вычисляется из оператора модуля, станет 0. Теперь оболочка будет ожидать всплывающее окно (которое является zenity), чтобы подтвердить, что нерест еще 4 окна , Таким образом, мы подсчитываем 4 раза, сбрасываем переменную, продолжаем.
Единственный минус здесь заключается в том, что find не сортирует файлы, поэтому они не обязательно будут в именованном порядке. Если порядок имеет значение, код потребует дополнительных инструкций. В противном случае это достаточно.
#!/bin/bash
FILEPATH="/home/xieerqi/MYTEXTFILES"
COUNT=0
find $FILEPATH -type f -name "*.txt" -print0 | \
while IFS= read -d '' FILE;
do
gedit $FILE &
COUNT=$(( $COUNT+1 ))
MOD=$(( $COUNT % 4 ))
if [ $MOD -eq 0 ]
then
zenity --question --text "Open 4 more files?" || exit
fi
done
Имя, которое вы интерпретируете как имя файла, - это имя, указанное для Desktop Launcher. Фактический файл - это файл с расширением *.desktop.
Вы можете найти имя файла запуска (*.desktop) из терминала, введя папку /usr/share/applications, затем выполните поиск содержимого файлы рабочего стола для имени файла.
Поскольку у меня нет установленной программы, я буду использовать программу, установленную на моем компьютере, в качестве примера шагов для поиска. Я буду искать пусковую установку Terminal. Когда вы выполните шаги, используйте JDownloader для своей строки поиска. Вы можете использовать больше символов имени, если оно вызывает слишком много обращений.
(Строка с префайлом $ представляет команды, набранные. Другие строки - вывод на выходе.)
$ cd /usr/share/applications
$ egrep -l "Terminal"
debian-uxterm.desktop
debian-xterm.desktop
emacs24-term.desktop
exo-terminal-emulator.desktop
gnome-terminal.desktop
mono-runtime-terminal.desktop
Это файлы, которые имеют Name=Terminal в качестве записи в имени файла *.desktop. Теперь я выбираю из выходного списка, который я хочу удалить.
Поскольку их несколько, я сначала рассмотрю файл с Gedit. В этом случае:
$ gedit gnome-terminal.desktop
Если это вы можете удалить с помощью:
$ sudo rm gnome-terminal.desktop
Обычно я удаляю системный файл во временную область перед удалением. Затем я делаю так, чтобы изменения выполнялись так, как ожидалось. После этого я окончательно удаляю файл.
Способ GUI:
В первом примере я представил метод : GUI: , потому что это был ваш метод в вашем вопросе. Вы также можете использовать поиск в GUI, что может быть значительно проще.
Поднимите папку /usr/share/applications в файловом браузере. Это покажет файлы там Launcher Name, а не фактическое имя файла. Это имя, которое вы видите в Launcher.
$ sudo -H nautilus /usr/share/applications
Примечание:
Вы также можете удалить файл, удалив установленное приложение, которое вы установили вывел Launcher в вашу систему.
Поскольку файл, из вашего описания, установлен в /opt, это указывает на то, что он не появился из репозитория по умолчанию. Поэтому вам нужно посмотреть в описании пакета Note: , чтобы найти шаги для удаления.
Имя, которое вы интерпретируете как имя файла, - это имя, указанное для Desktop Launcher. Фактический файл - это файл с расширением *.desktop.
Вы можете найти имя файла запуска (*.desktop) из терминала, введя папку /usr/share/applications, затем выполните поиск содержимого файлы рабочего стола для имени файла.
Поскольку у меня нет установленной программы, я буду использовать программу, установленную на моем компьютере, в качестве примера шагов для поиска. Я буду искать пусковую установку Terminal. Когда вы выполните шаги, используйте JDownloader для своей строки поиска. Вы можете использовать больше символов имени, если оно вызывает слишком много обращений.
(Строка с префайлом $ представляет команды, набранные. Другие строки - вывод на выходе.)
$ cd /usr/share/applications
$ egrep -l "Terminal"
debian-uxterm.desktop
debian-xterm.desktop
emacs24-term.desktop
exo-terminal-emulator.desktop
gnome-terminal.desktop
mono-runtime-terminal.desktop
Это файлы, которые имеют Name=Terminal в качестве записи в имени файла *.desktop. Теперь я выбираю из выходного списка, который я хочу удалить.
Поскольку их несколько, я сначала рассмотрю файл с Gedit. В этом случае:
$ gedit gnome-terminal.desktop
Если это вы можете удалить с помощью:
$ sudo rm gnome-terminal.desktop
Обычно я удаляю системный файл во временную область перед удалением. Затем я делаю так, чтобы изменения выполнялись так, как ожидалось. После этого я окончательно удаляю файл.
Способ GUI:
В первом примере я представил метод : GUI: , потому что это был ваш метод в вашем вопросе. Вы также можете использовать поиск в GUI, что может быть значительно проще.
Поднимите папку /usr/share/applications в файловом браузере. Это покажет файлы там Launcher Name, а не фактическое имя файла. Это имя, которое вы видите в Launcher.
$ sudo -H nautilus /usr/share/applications
Примечание:
Вы также можете удалить файл, удалив установленное приложение, которое вы установили вывел Launcher в вашу систему.
Поскольку файл, из вашего описания, установлен в /opt, это указывает на то, что он не появился из репозитория по умолчанию. Поэтому вам нужно посмотреть в описании пакета Note: , чтобы найти шаги для удаления.