Пакетное задание для создания текстового файла для файлов фильмов

Задачи в настоящее время не поддерживаются в Evolution из-за отсутствия поддержки Google Tasks в базовой библиотеке (libgdata).

В Bugzilla Gnome есть ошибка: https://bugzilla.gnome.org /show_bug.cgi?id=652132

0
задан 16 May 2017 в 00:22

3 ответа

Steeldriver сделал избили меня до этого, и более элегантно. По крайней мере, я не буду в своем классе на какое-то десятилетие. Но поскольку я уже написал и протестировал это, я опубликую его, FWIW. Следующий код должен быть помещен в скрипт. Затем вы запускаете скрипт в терминале, единственным аргументом которого является каталог, содержащий файлы, с которыми вы хотите иметь дело. Если вы хотите запустить его из браузера файлов gui, вам нужно вызвать его с помощью чего-то вроде xterm -e /path/to/this_script.sh $f, f, являющегося любой переменной, которую браузер файлов передает в каталоге / path / to /.

Итак, откройте текстовый файл с редактором, что-то вроде geany, leafpad или (содрогните) gedit.

Скопируйте приведенный ниже код, начиная с «#! / bin / bash two строки ниже этого.

##### НЕ копируйте эту строку, начните со следующей строки «#!»

#!/bin/bash

# repeats until you enter a valid directory
# you might add a test to make sure you have adequate permissions.
DIr="$1"
while [ ! -d "$DIr" ] || [ $DIr = / ]; do
      read -p "$DIr is not a valid argument. Enter a 
      directory other than '/' with files you want to process:" DIr
done

# canonicalizes directory name
DIr="$(readlink -f "$DIr")"

for FILE in $DIr/*; do
    BASENAMe="$(basename "$FILE")"
    BASE_NAME_minus_ext="$(echo -n "$BASENAMe" | rev | cut -d'.' -f2- | rev)"

    # If you want 'em all in a single list, instead use:
    # echo "$BASENAMe" >> "$DIr/List_of_names_minus_extensions"
    echo "$BASENAMe" > "$DIr"/"$BASE_NAME_minus_ext"

done

##### НЕ копируйте

Сохраните файл с удобным именем, например «list.sh», без меток кавычек. Переместите его в одну из каталогов на вашем пути. Вы можете отобразить путь с помощью команды:

echo $PATH

Это вернет строку, представляющую собой кучу каталогов, разделенных двоеточиями (символ «:»). начните с символа «/». Они НЕ включают «:». Любой из этих каталогов будет выполнен. Если это на вашем пути, я полагаю, что mos Обычным является:

/ usr / local / bin

, но это действительно не имеет значения, пока это один из них. Если вы сделали это с помощью графического браузера файлов (например, Nautilus, Thunar или Pcmamfm), щелкните правой кнопкой мыши на скрипте (т. Е. Файл, который вы только что создали и переместите), и нажмите «Свойства», а затем «Разрешения», если это отдельная вкладка , Установите его как исполняемый вами. Всевозможные способы сделать это. Наиболее удобным является установление как принадлежащее вашему имени пользователя и группе с тем же именем, и проверка исполняемого файла, доступного для чтения и записи владельцем и группой, но ни один из них другим.

Если вы делаете это из команды line:

chmod -v ug+r+w+x /usr/local/bin/list.sh 

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

Или, если это не удается, выполните эти 2, в то время, чтобы:

sudo chown your_user_name:your_user_name /usr/local/bin/list.sh
sudo chmod -v ug+r+w+x /usr/local/bin/list.sh 

Теперь у вас должен быть исполняемый скрипт, который можно вызвать, введя его имя в терминал и нажав enter, либо равным образом:

list.sh

или с именем каталога, в котором вы хотите, чтобы он действовал следующим образом:

list.sh /path/to/directory_that_has_your_movies

Если вы не включите полный / path / to / directory_you_want_acted_upon, он сделает разумным угадайте, где его найти. Это может показаться неправильным. Если вы хотите сохранить свои нажатия клавиш, вы можете дать сценарию более короткое имя, например «lis», или если вы хотите, чтобы было легче запомнить, что он делает, вы можете дать ему более длинное имя, например «list_files_within_without_extensions.sh». «.sh «окончание - это общее соглашение для имен скриптов, так что вы будете знать, что это за файл, глядя на его имя. Вы можете назвать его чем угодно, даже« Джордж Хампердинк, III », если хотите, но пробелы и запятые, как правило, вызывают проблемы .

Еще несколько мыслей: В свете вашего ответа на судословие, я должен предостеречь, НЕ использовать sudo для запуска либо его команды, либо моего сценария. Я не могу придумать никаких веских причин для фильмов принадлежащих root или в каталоге, принадлежащем root.Они абсолютно НЕ должны запускаться в средстве просмотра от root. У нас не так много проблемы с вредоносными программами в экосистеме nix, но вызывают медиаплееров, даже зрителей с рисунком, как root , спрашивает о проблемах, и если достаточно людей попросят о проблемах, кто-то его предоставит. Поэтому файлы ДОЛЖНЫ быть читаемыми простой пользователь, и было бы неловко держать их в директории, которая не была бы удобочитаемой, доступной для записи и «исполняемой» простым пользователем. Если его команда или мой скрипт не сработают так, как это могло бы предотвратить sudo, тогда вам нужно изменить perms файлов или каталог, в котором они находятся. Использование sudo было бы похоже на то, чтобы поджечь мебель, потому что AC сделал комната слишком холодная. Он просто даст вам БОЛЬШЕ проблемы с разрешением, создав файлы списка, принадлежащие root. Никогда не используйте sudo, если вы НЕ ИМЕЕТЕ, а затем только если это имеет смысл. Если нет смысла использовать sudo, тогда исправьте проблему, не работайте вокруг нее.

Кроме того, да, его команда будет работать для других расширений, если вы введёте в нее логические изменения , Скрипт работает для любых расширений, как есть.

Вы заметите, что рядом с серединой находится прокомментированная строка о том, хотите ли вы, чтобы это создало один список в каталоге, в котором он действует, или создайте отдельный текстовый файл для каждый фильм. Помещение метки «#» в начале строки называется «комментирование» строки. Это означает, что комментарий для людей читается, и bash проигнорирует его. Вы можете заставить скрипт работать в любом случае, изменив, какая из двух строк прокомментирована. Нужно прокомментировать, а другой не прокомментировать.

0
ответ дан 22 May 2018 в 22:35
  • 1
    Что с фанковыми именами переменных? – wjandrea 16 May 2017 в 01:51
  • 2
    De gustibus non est debandum. Они действительны. – Lew Rockwell Fan 16 May 2017 в 02:15
  • 3
    Да, я никогда не видел такую ​​форму дела, которая использовалась раньше. Если есть какое-то объяснение? – wjandrea 16 May 2017 в 02:17
  • 4
    Да, некоторые люди жалуются на весь верхний регистр. В некоторых случаях RARE это действительная жалоба. Но мне нравятся мои переменные, чтобы выскочить на визуальный контроль. Это облегчает чтение скрипта для меня. Поэтому, когда я думаю об этом, я использую случай с верблюдом. Я также пытаюсь использовать формы, которые действительны для bash, dash и tcsh. Теперь не уходите от tcsh. – Lew Rockwell Fan 16 May 2017 в 02:22
  • 5
    Привет Лью, мне удалось заставить его работать над некоторым тестовым файлом, но только один раз в 5-6 работает ... Что я делаю; cd в папку с файлами, введите sudo и вставьте в свой код, со всем входом выше, задайте вопрос, чтобы ввести каталог, отличный от " / & quot ;, и сделайте это ... как я это делаю до сих пор? – Terje Folkvord 17 May 2017 в 00:00

Steeldriver сделал избили меня до этого, и более элегантно. По крайней мере, я не буду в своем классе на какое-то десятилетие. Но поскольку я уже написал и протестировал это, я опубликую его, FWIW. Следующий код должен быть помещен в скрипт. Затем вы запускаете скрипт в терминале, единственным аргументом которого является каталог, содержащий файлы, с которыми вы хотите иметь дело. Если вы хотите запустить его из браузера файлов gui, вам нужно вызвать его с помощью чего-то вроде xterm -e /path/to/this_script.sh $f, f, являющегося любой переменной, которую браузер файлов передает в каталоге / path / to /.

Итак, откройте текстовый файл с редактором, что-то вроде geany, leafpad или (содрогните) gedit.

Скопируйте приведенный ниже код, начиная с «#! / bin / bash two строки ниже этого.

##### НЕ копируйте эту строку, начните со следующей строки «#!»

#!/bin/bash # repeats until you enter a valid directory # you might add a test to make sure you have adequate permissions. DIr="$1" while [ ! -d "$DIr" ] || [ $DIr = / ]; do read -p "$DIr is not a valid argument. Enter a directory other than '/' with files you want to process:" DIr done # canonicalizes directory name DIr="$(readlink -f "$DIr")" for FILE in $DIr/*; do BASENAMe="$(basename "$FILE")" BASE_NAME_minus_ext="$(echo -n "$BASENAMe" | rev | cut -d'.' -f2- | rev)" # If you want 'em all in a single list, instead use: # echo "$BASENAMe" >> "$DIr/List_of_names_minus_extensions" echo "$BASENAMe" > "$DIr"/"$BASE_NAME_minus_ext" done

##### НЕ копируйте

Сохраните файл с удобным именем, например «list.sh», без меток кавычек. Переместите его в одну из каталогов на вашем пути. Вы можете отобразить путь с помощью команды:

echo $PATH

Это вернет строку, представляющую собой кучу каталогов, разделенных двоеточиями (символ «:»). начните с символа «/». Они НЕ включают «:». Любой из этих каталогов будет выполнен. Если это на вашем пути, я полагаю, что mos Обычным является:

/ usr / local / bin

, но это действительно не имеет значения, пока это один из них. Если вы сделали это с помощью графического браузера файлов (например, Nautilus, Thunar или Pcmamfm), щелкните правой кнопкой мыши на скрипте (т. Е. Файл, который вы только что создали и переместите), и нажмите «Свойства», а затем «Разрешения», если это отдельная вкладка , Установите его как исполняемый вами. Всевозможные способы сделать это. Наиболее удобным является установление как принадлежащее вашему имени пользователя и группе с тем же именем, и проверка исполняемого файла, доступного для чтения и записи владельцем и группой, но ни один из них другим.

Если вы делаете это из команды line:

chmod -v ug+r+w+x /usr/local/bin/list.sh

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

Или, если это не удается, выполните эти 2, в то время, чтобы:

sudo chown your_user_name:your_user_name /usr/local/bin/list.sh sudo chmod -v ug+r+w+x /usr/local/bin/list.sh

Теперь у вас должен быть исполняемый скрипт, который можно вызвать, введя его имя в терминал и нажав enter, либо равным образом:

list.sh

или с именем каталога, в котором вы хотите, чтобы он действовал следующим образом:

list.sh /path/to/directory_that_has_your_movies

Если вы не включите полный / path / to / directory_you_want_acted_upon, он сделает разумным угадайте, где его найти. Это может показаться неправильным. Если вы хотите сохранить свои нажатия клавиш, вы можете дать сценарию более короткое имя, например «lis», или если вы хотите, чтобы было легче запомнить, что он делает, вы можете дать ему более длинное имя, например «list_files_within_without_extensions.sh». «.sh «окончание - это общее соглашение для имен скриптов, так что вы будете знать, что это за файл, глядя на его имя. Вы можете назвать его чем угодно, даже« Джордж Хампердинк, III », если хотите, но пробелы и запятые, как правило, вызывают проблемы .

Еще несколько мыслей: В свете вашего ответа на судословие, я должен предостеречь, НЕ использовать sudo для запуска либо его команды, либо моего сценария. Я не могу придумать никаких веских причин для фильмов принадлежащих root или в каталоге, принадлежащем root.Они абсолютно НЕ должны запускаться в средстве просмотра от root. У нас не так много проблемы с вредоносными программами в экосистеме nix, но вызывают медиаплееров, даже зрителей с рисунком, как root , спрашивает о проблемах, и если достаточно людей попросят о проблемах, кто-то его предоставит. Поэтому файлы ДОЛЖНЫ быть читаемыми простой пользователь, и было бы неловко держать их в директории, которая не была бы удобочитаемой, доступной для записи и «исполняемой» простым пользователем. Если его команда или мой скрипт не сработают так, как это могло бы предотвратить sudo, тогда вам нужно изменить perms файлов или каталог, в котором они находятся. Использование sudo было бы похоже на то, чтобы поджечь мебель, потому что AC сделал комната слишком холодная. Он просто даст вам БОЛЬШЕ проблемы с разрешением, создав файлы списка, принадлежащие root. Никогда не используйте sudo, если вы НЕ ИМЕЕТЕ, а затем только если это имеет смысл. Если нет смысла использовать sudo, тогда исправьте проблему, не работайте вокруг нее.

Кроме того, да, его команда будет работать для других расширений, если вы введёте в нее логические изменения , Скрипт работает для любых расширений, как есть.

Вы заметите, что рядом с серединой находится прокомментированная строка о том, хотите ли вы, чтобы это создало один список в каталоге, в котором он действует, или создайте отдельный текстовый файл для каждый фильм. Помещение метки «#» в начале строки называется «комментирование» строки. Это означает, что комментарий для людей читается, и bash проигнорирует его. Вы можете заставить скрипт работать в любом случае, изменив, какая из двух строк прокомментирована. Нужно прокомментировать, а другой не прокомментировать.

0
ответ дан 18 July 2018 в 13:14

Steeldriver сделал избили меня до этого, и более элегантно. По крайней мере, я не буду в своем классе на какое-то десятилетие. Но поскольку я уже написал и протестировал это, я опубликую его, FWIW. Следующий код должен быть помещен в скрипт. Затем вы запускаете скрипт в терминале, единственным аргументом которого является каталог, содержащий файлы, с которыми вы хотите иметь дело. Если вы хотите запустить его из браузера файлов gui, вам нужно вызвать его с помощью чего-то вроде xterm -e /path/to/this_script.sh $f, f, являющегося любой переменной, которую браузер файлов передает в каталоге / path / to /.

Итак, откройте текстовый файл с редактором, что-то вроде geany, leafpad или (содрогните) gedit.

Скопируйте приведенный ниже код, начиная с «#! / bin / bash two строки ниже этого.

##### НЕ копируйте эту строку, начните со следующей строки «#!»

#!/bin/bash # repeats until you enter a valid directory # you might add a test to make sure you have adequate permissions. DIr="$1" while [ ! -d "$DIr" ] || [ $DIr = / ]; do read -p "$DIr is not a valid argument. Enter a directory other than '/' with files you want to process:" DIr done # canonicalizes directory name DIr="$(readlink -f "$DIr")" for FILE in $DIr/*; do BASENAMe="$(basename "$FILE")" BASE_NAME_minus_ext="$(echo -n "$BASENAMe" | rev | cut -d'.' -f2- | rev)" # If you want 'em all in a single list, instead use: # echo "$BASENAMe" >> "$DIr/List_of_names_minus_extensions" echo "$BASENAMe" > "$DIr"/"$BASE_NAME_minus_ext" done

##### НЕ копируйте

Сохраните файл с удобным именем, например «list.sh», без меток кавычек. Переместите его в одну из каталогов на вашем пути. Вы можете отобразить путь с помощью команды:

echo $PATH

Это вернет строку, представляющую собой кучу каталогов, разделенных двоеточиями (символ «:»). начните с символа «/». Они НЕ включают «:». Любой из этих каталогов будет выполнен. Если это на вашем пути, я полагаю, что mos Обычным является:

/ usr / local / bin

, но это действительно не имеет значения, пока это один из них. Если вы сделали это с помощью графического браузера файлов (например, Nautilus, Thunar или Pcmamfm), щелкните правой кнопкой мыши на скрипте (т. Е. Файл, который вы только что создали и переместите), и нажмите «Свойства», а затем «Разрешения», если это отдельная вкладка , Установите его как исполняемый вами. Всевозможные способы сделать это. Наиболее удобным является установление как принадлежащее вашему имени пользователя и группе с тем же именем, и проверка исполняемого файла, доступного для чтения и записи владельцем и группой, но ни один из них другим.

Если вы делаете это из команды line:

chmod -v ug+r+w+x /usr/local/bin/list.sh

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

Или, если это не удается, выполните эти 2, в то время, чтобы:

sudo chown your_user_name:your_user_name /usr/local/bin/list.sh sudo chmod -v ug+r+w+x /usr/local/bin/list.sh

Теперь у вас должен быть исполняемый скрипт, который можно вызвать, введя его имя в терминал и нажав enter, либо равным образом:

list.sh

или с именем каталога, в котором вы хотите, чтобы он действовал следующим образом:

list.sh /path/to/directory_that_has_your_movies

Если вы не включите полный / path / to / directory_you_want_acted_upon, он сделает разумным угадайте, где его найти. Это может показаться неправильным. Если вы хотите сохранить свои нажатия клавиш, вы можете дать сценарию более короткое имя, например «lis», или если вы хотите, чтобы было легче запомнить, что он делает, вы можете дать ему более длинное имя, например «list_files_within_without_extensions.sh». «.sh «окончание - это общее соглашение для имен скриптов, так что вы будете знать, что это за файл, глядя на его имя. Вы можете назвать его чем угодно, даже« Джордж Хампердинк, III », если хотите, но пробелы и запятые, как правило, вызывают проблемы .

Еще несколько мыслей: В свете вашего ответа на судословие, я должен предостеречь, НЕ использовать sudo для запуска либо его команды, либо моего сценария. Я не могу придумать никаких веских причин для фильмов принадлежащих root или в каталоге, принадлежащем root.Они абсолютно НЕ должны запускаться в средстве просмотра от root. У нас не так много проблемы с вредоносными программами в экосистеме nix, но вызывают медиаплееров, даже зрителей с рисунком, как root , спрашивает о проблемах, и если достаточно людей попросят о проблемах, кто-то его предоставит. Поэтому файлы ДОЛЖНЫ быть читаемыми простой пользователь, и было бы неловко держать их в директории, которая не была бы удобочитаемой, доступной для записи и «исполняемой» простым пользователем. Если его команда или мой скрипт не сработают так, как это могло бы предотвратить sudo, тогда вам нужно изменить perms файлов или каталог, в котором они находятся. Использование sudo было бы похоже на то, чтобы поджечь мебель, потому что AC сделал комната слишком холодная. Он просто даст вам БОЛЬШЕ проблемы с разрешением, создав файлы списка, принадлежащие root. Никогда не используйте sudo, если вы НЕ ИМЕЕТЕ, а затем только если это имеет смысл. Если нет смысла использовать sudo, тогда исправьте проблему, не работайте вокруг нее.

Кроме того, да, его команда будет работать для других расширений, если вы введёте в нее логические изменения , Скрипт работает для любых расширений, как есть.

Вы заметите, что рядом с серединой находится прокомментированная строка о том, хотите ли вы, чтобы это создало один список в каталоге, в котором он действует, или создайте отдельный текстовый файл для каждый фильм. Помещение метки «#» в начале строки называется «комментирование» строки. Это означает, что комментарий для людей читается, и bash проигнорирует его. Вы можете заставить скрипт работать в любом случае, изменив, какая из двух строк прокомментирована. Нужно прокомментировать, а другой не прокомментировать.

0
ответ дан 24 July 2018 в 20:08

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

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