Сценарий для периодического перемещения файлов в новый каталог

Спасибо, ссылка выше работает нормально, если при попытке

sudo dkms add –m rt2x00 –v VV
sudo dkms build –m rt2x00 –v VV
sudo dkms install –m rt2x00 –v VV
sudo dkms install –m rt2x00 –v VV --force

появляется ошибка «Я не знаю, как обращаться с rt2x00 ...». Попробуйте вместо этого:

По крайней мере, это сработало для меня.

0
задан 17 October 2017 в 21:36

9 ответов

Сначала напишите простой сценарий, чтобы переместить изображение / видео в нужный каталог. Что-то вроде следующего, в файле с именем «backupPhotos.sh». Я должен предположить, что вы знаете, как использовать текстовый редактор.

#!/bin/bash

cd /media/data/phones/myiphone/resilio
find . -type f -exec mv {} ../pics \;

В первой строке говорится запускать этот скрипт с помощью / bin / bash (обычно это оболочка по умолчанию, которую вы используете в окне терминала). Строка, начинающаяся с «cd», изменяет текущий рабочий каталог в каталог, в котором ваши фотографии сохраняются Resilio. Последняя строка перемещает все файлы в каталоге resilio в каталог pics (только файлы будут перемещены «-type f», а не структура каталогов.

затем выполните:

chmod 755 backupPhotos.sh
mkdir /media/data/phones/myiphone/pics

Команда chmod сообщает Ubuntu, что файл содержит исполняемый скрипт. Команда mkdir создает каталог «pics» для хранения изображений / видео. Если у вас уже есть каталог pics, вам не нужно делать mkdir.

Попробуйте сценарий, введя команду

./backupPhotos.sh

в каталог, в котором вы создали этот файл. Примите меры предосторожности, чтобы убедиться, что у вас есть фотографии, сохраненные где-то еще во время этого тестирования фаза, на случай, если что-то пойдет не так. После запуска скрипта все каталоги под «resilio» должны быть пустыми, а все изображения / видео должны находиться в каталоге «pics».

Как только вы уверены, что это работает правильно, вы можете запланировать его запуск с помощью crontab. Перед выполнением следующей команды вы должны определить предпочтительный текстовый редактор, набрав

export EDITOR=gedit

Это позволит вашему предпочитаемому редактору «gedit» (временно). Замените «gedit» любым текстовым редактором, который вам нравится и который был установлен. Затем введите команду

crontab -e

. Это поместит вас в ваш любимый редактор с вероятным пустым файлом crontab. Должен быть какой-то текст в файле crontb, но он должен быть прокомментирован символом «#». Вы добавите строку в конец файла, чтобы запланировать запуск нового скрипта. Линией будет:

0 5 * * * /path_to_script_directory/backupPhotos.sh

, где «path_to_script_directory» - полный путь туда, где находится скрипт (что-то вроде / home / mkinsocal). Три звездочки означают запуск сценария каждый день. «0 5» означает запустить его через 0 минут после 5 утра. Обратите внимание, что каждый день компьютер должен работать и работать в 5 утра, чтобы это работало. После того, как вы закончите добавление строки в файл crontab, сохраните ее, и все готово.

1
ответ дан 22 May 2018 в 17:27

Сначала напишите простой сценарий, чтобы переместить изображение / видео в нужный каталог. Что-то вроде следующего, в файле с именем «backupPhotos.sh». Я должен предположить, что вы знаете, как использовать текстовый редактор.

#!/bin/bash cd /media/data/phones/myiphone/resilio find . -type f -exec mv {} ../pics \;

В первой строке говорится запускать этот скрипт с помощью / bin / bash (обычно это оболочка по умолчанию, которую вы используете в окне терминала). Строка, начинающаяся с «cd», изменяет текущий рабочий каталог в каталог, в котором ваши фотографии сохраняются Resilio. Последняя строка перемещает все файлы в каталоге resilio в каталог pics (только файлы будут перемещены «-type f», а не структура каталогов.

затем выполните:

chmod 755 backupPhotos.sh mkdir /media/data/phones/myiphone/pics

Команда chmod сообщает Ubuntu, что файл содержит исполняемый скрипт. Команда mkdir создает каталог «pics» для хранения изображений / видео. Если у вас уже есть каталог pics, вам не нужно делать mkdir.

Попробуйте сценарий, введя команду

./backupPhotos.sh

в каталог, в котором вы создали этот файл. Примите меры предосторожности, чтобы убедиться, что у вас есть фотографии, сохраненные где-то еще во время этого тестирования фаза, на случай, если что-то пойдет не так. После запуска скрипта все каталоги под «resilio» должны быть пустыми, а все изображения / видео должны находиться в каталоге «pics».

Как только вы уверены, что это работает правильно, вы можете запланировать его запуск с помощью crontab. Перед выполнением следующей команды вы должны определить предпочтительный текстовый редактор, набрав

export EDITOR=gedit

Это позволит вашему предпочитаемому редактору «gedit» (временно). Замените «gedit» любым текстовым редактором, который вам нравится и который был установлен. Затем введите команду

crontab -e

. Это поместит вас в ваш любимый редактор с вероятным пустым файлом crontab. Должен быть какой-то текст в файле crontb, но он должен быть прокомментирован символом «#». Вы добавите строку в конец файла, чтобы запланировать запуск нового скрипта. Линией будет:

0 5 * * * /path_to_script_directory/backupPhotos.sh

, где «path_to_script_directory» - полный путь туда, где находится скрипт (что-то вроде / home / mkinsocal). Три звездочки означают запуск сценария каждый день. «0 5» означает запустить его через 0 минут после 5 утра. Обратите внимание, что каждый день компьютер должен работать и работать в 5 утра, чтобы это работало. После того, как вы закончите добавление строки в файл crontab, сохраните ее, и все готово.

1
ответ дан 18 July 2018 в 05:09

Сначала напишите простой сценарий, чтобы переместить изображение / видео в нужный каталог. Что-то вроде следующего, в файле с именем «backupPhotos.sh». Я должен предположить, что вы знаете, как использовать текстовый редактор.

#!/bin/bash cd /media/data/phones/myiphone/resilio find . -type f -exec mv {} ../pics \;

В первой строке говорится запускать этот скрипт с помощью / bin / bash (обычно это оболочка по умолчанию, которую вы используете в окне терминала). Строка, начинающаяся с «cd», изменяет текущий рабочий каталог в каталог, в котором ваши фотографии сохраняются Resilio. Последняя строка перемещает все файлы в каталоге resilio в каталог pics (только файлы будут перемещены «-type f», а не структура каталогов.

затем выполните:

chmod 755 backupPhotos.sh mkdir /media/data/phones/myiphone/pics

Команда chmod сообщает Ubuntu, что файл содержит исполняемый скрипт. Команда mkdir создает каталог «pics» для хранения изображений / видео. Если у вас уже есть каталог pics, вам не нужно делать mkdir.

Попробуйте сценарий, введя команду

./backupPhotos.sh

в каталог, в котором вы создали этот файл. Примите меры предосторожности, чтобы убедиться, что у вас есть фотографии, сохраненные где-то еще во время этого тестирования фаза, на случай, если что-то пойдет не так. После запуска скрипта все каталоги под «resilio» должны быть пустыми, а все изображения / видео должны находиться в каталоге «pics».

Как только вы уверены, что это работает правильно, вы можете запланировать его запуск с помощью crontab. Перед выполнением следующей команды вы должны определить предпочтительный текстовый редактор, набрав

export EDITOR=gedit

Это позволит вашему предпочитаемому редактору «gedit» (временно). Замените «gedit» любым текстовым редактором, который вам нравится и который был установлен. Затем введите команду

crontab -e

. Это поместит вас в ваш любимый редактор с вероятным пустым файлом crontab. Должен быть какой-то текст в файле crontb, но он должен быть прокомментирован символом «#». Вы добавите строку в конец файла, чтобы запланировать запуск нового скрипта. Линией будет:

0 5 * * * /path_to_script_directory/backupPhotos.sh

, где «path_to_script_directory» - полный путь туда, где находится скрипт (что-то вроде / home / mkinsocal). Три звездочки означают запуск сценария каждый день. «0 5» означает запустить его через 0 минут после 5 утра. Обратите внимание, что каждый день компьютер должен работать и работать в 5 утра, чтобы это работало. После того, как вы закончите добавление строки в файл crontab, сохраните ее, и все готово.

1
ответ дан 24 July 2018 в 18:15

Я так понимаю, у вас есть структура папок, например /media/data/phones/myiphone/pics/100APPLE, /media/data/phones/myiphone/pics/101APPLE и т. д. Это можно решить с помощью подстановки. Globs в основном используют специальные символы в качестве подстановочных знаков.

* означает любой символ, любое количество раз, в том числе none. ? означает любой символ, по крайней мере один раз. [abc] будет соответствовать одному символу, указанному хотя бы один раз. [a-z] будет соответствовать одному символу в интервале.

Таким образом, ls [0-9]foo будет соответствовать 1foo и 9foo, но не 12foo. *foo будет совпадать с обоими.

Таким образом, самый простой glob может быть APPLE, чтобы соответствовать любой папке с 8 символами в имени, заканчивающейся APPLE, но с тремя неизвестными стартовыми символами.

Соответствие любому файлу внутри можно сделать *, например ls ???APPLE/* отобразит все файлы во всех этих папках.

В качестве примера я использовал ls, но globbing обрабатывается оболочкой, и вы можете одинаково хорошо хранить файлы вместо их перечисления - или перечислить их и запустить цикл for.

Другим подходом будет использование find, как предлагает @Drymartini. Короче говоря, у вас есть несколько возможностей.

0
ответ дан 22 May 2018 в 17:27
  • 1
    но как ls в файлах поможет их перемещать? Это, конечно, не «проходит [OP] от начала до конца», не так ли? Они говорят, что они новы для Linux и, вероятно, не знакомы с командой mv ... – Zanna 17 October 2017 в 21:38
  • 2
    Очень ценится, но, как сказала Занна, я новичок во всем этом. т. е. никогда не записывали скрипт, оболочку, что угодно. Очень хочется учиться, но, возможно, немного больше рекомендаций или, по крайней мере, некоторых терминов, которые я могу использовать для Google. Видарло, вы правы в структуре файла, хотя есть одна случайная папка Group291. Там всего 1 фотография. Не знаю, почему, но я прекрасно его игнорирую, пока это не тенденция. Тем не менее, все-таки потеряно. :) – mkinsocal 17 October 2017 в 22:41
  • 3
    Я предлагаю вам поиграть с листинговыми файлами, чтобы понять глобусы. Globeing происходит в оболочке, поэтому mv *APPLE/* tmp/ переместит все файлы подкаталогов, заканчивающихся APPLE, в каталог tmp. – vidarlo 17 October 2017 в 22:47

Вы можете сделать это с помощью man find

Что-то вроде этого поможет:

find ./ -iname *.jp?g -exec cp '{}' photosDir/ \;
-3
ответ дан 22 May 2018 в 17:27
  • 1
    Вы должны указать любые подстановочные знаки, которые вы хотите передать, чтобы найти, иначе оболочка расширит выражение до всех совпадающих файлов в текущем каталоге, что приведет к тому, что find не найдет нужные вам вещи. А как насчет автоматизации «Я хочу, чтобы это произошло один раз в день»? – Zanna 17 October 2017 в 21:40
  • 2
    Какова цель ? в *.jp?g? При передаче в -iname или -iname символ ? заставляет find соответствовать ровно одному символу . *.jp?g выполняет не совпадение имен файлов, таких как a.jpg. Обратите внимание, что это работает так же, как когда оболочка расширяет его (хотя вы не хотите, чтобы это произошло здесь, а @Zanna правильно, что шаблон должен быть указан). – Eliah Kagan 25 October 2017 в 23:09

Вы можете сделать это с помощью man find

Что-то вроде этого поможет:

find ./ -iname *.jp?g -exec cp '{}' photosDir/ \;
-3
ответ дан 18 July 2018 в 05:09

Я так понимаю, у вас есть структура папок, например /media/data/phones/myiphone/pics/100APPLE, /media/data/phones/myiphone/pics/101APPLE и т. д. Это можно решить с помощью подстановки. Globs в основном используют специальные символы в качестве подстановочных знаков.

* означает любой символ, любое количество раз, в том числе none. ? означает любой символ, по крайней мере один раз. [abc] будет соответствовать одному символу, указанному хотя бы один раз. [a-z] будет соответствовать одному символу в интервале.

Таким образом, ls [0-9]foo будет соответствовать 1foo и 9foo, но не 12foo. *foo будет совпадать с обоими.

Таким образом, самый простой glob может быть APPLE, чтобы соответствовать любой папке с 8 символами в имени, заканчивающейся APPLE, но с тремя неизвестными стартовыми символами.

Соответствие любому файлу внутри можно сделать *, например ls ???APPLE/* отобразит все файлы во всех этих папках.

В качестве примера я использовал ls, но globbing обрабатывается оболочкой, и вы можете одинаково хорошо хранить файлы вместо их перечисления - или перечислить их и запустить цикл for.

Другим подходом будет использование find, как предлагает @Drymartini. Короче говоря, у вас есть несколько возможностей.

0
ответ дан 18 July 2018 в 05:09

Вы можете сделать это с помощью man find

Что-то вроде этого поможет:

find ./ -iname *.jp?g -exec cp '{}' photosDir/ \;
-3
ответ дан 24 July 2018 в 18:15
  • 1
    Вы должны указать любые подстановочные знаки, которые вы хотите передать, чтобы найти, иначе оболочка расширит выражение до всех совпадающих файлов в текущем каталоге, что приведет к тому, что find не найдет нужные вам вещи. А как насчет автоматизации «Я хочу, чтобы это произошло один раз в день»? – Zanna 17 October 2017 в 21:40
  • 2
    Какова цель ? в *.jp?g? При передаче в -iname или -iname символ ? заставляет find соответствовать ровно одному символу . *.jp?g выполняет не совпадение имен файлов, таких как a.jpg. Обратите внимание, что это работает так же, как когда оболочка расширяет его (хотя вы не хотите, чтобы это произошло здесь, а @Zanna правильно, что шаблон должен быть указан). – Eliah Kagan 25 October 2017 в 23:09

Я так понимаю, у вас есть структура папок, например /media/data/phones/myiphone/pics/100APPLE, /media/data/phones/myiphone/pics/101APPLE и т. д. Это можно решить с помощью подстановки. Globs в основном используют специальные символы в качестве подстановочных знаков.

* означает любой символ, любое количество раз, в том числе none. ? означает любой символ, по крайней мере один раз. [abc] будет соответствовать одному символу, указанному хотя бы один раз. [a-z] будет соответствовать одному символу в интервале.

Таким образом, ls [0-9]foo будет соответствовать 1foo и 9foo, но не 12foo. *foo будет совпадать с обоими.

Таким образом, самый простой glob может быть APPLE, чтобы соответствовать любой папке с 8 символами в имени, заканчивающейся APPLE, но с тремя неизвестными стартовыми символами.

Соответствие любому файлу внутри можно сделать *, например ls ???APPLE/* отобразит все файлы во всех этих папках.

В качестве примера я использовал ls, но globbing обрабатывается оболочкой, и вы можете одинаково хорошо хранить файлы вместо их перечисления - или перечислить их и запустить цикл for.

Другим подходом будет использование find, как предлагает @Drymartini. Короче говоря, у вас есть несколько возможностей.

0
ответ дан 24 July 2018 в 18:15
  • 1
    но как ls в файлах поможет их перемещать? Это, конечно, не «проходит [OP] от начала до конца», не так ли? Они говорят, что они новы для Linux и, вероятно, не знакомы с командой mv ... – Zanna 17 October 2017 в 21:38
  • 2
    Очень ценится, но, как сказала Занна, я новичок во всем этом. т. е. никогда не записывали скрипт, оболочку, что угодно. Очень хочется учиться, но, возможно, немного больше рекомендаций или, по крайней мере, некоторых терминов, которые я могу использовать для Google. Видарло, вы правы в структуре файла, хотя есть одна случайная папка Group291. Там всего 1 фотография. Не знаю, почему, но я прекрасно игнорирую его, пока это не тенденция. Тем не менее, все-таки потеряно. :) – mkinsocal 17 October 2017 в 22:41
  • 3
    Я предлагаю вам поиграть с листинговыми файлами, чтобы понять глобусы. Globeing происходит в оболочке, поэтому mv *APPLE/* tmp/ переместит все файлы подкаталогов, заканчивающихся APPLE, в каталог tmp. – vidarlo 17 October 2017 в 22:47

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

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