С zsh
или fish
или ksh -o globstar
илиbash -O globstar
(или после shopt -s globstar
вbash
)или tcsh
после set globstar
илиyash -o extended-glob
:
cp -- **/Screenshot20180509143*3.png /dev/media/SD256/DestinationFolder
globstar с синтаксисом **
выполняет рекурсивный поиск; если оставшаяся часть шаблона имени файла glob ()уникальна, вы получите желаемые результаты. Обратите внимание, что я скопировал ...3*3
из вашего примера, а не, например. имя файла Screenshot20180509143013.png
из предыдущего вопроса.
Обратите внимание, что:
fish
и версии bash до 4.3 будут следовать символическим ссылкам при рекурсии. С zsh
, tcsh
или yash
вы можете использовать ***
вместо **
, чтобы получить такое поведение. fish
не найдет файл, если он находится в текущем каталоге. dotglob
для их повторного включения. См. также квалификатор (D)
glob в zsh
. zsh
вы также можете добавить ([1])
в конце паттерна. [1]
— это квалификатор glob для копирования только первого соответствующего файла . -i
для cp
также может защитить от случайной перезаписи, если файл находится в нескольких каталогах. Проблема оказалась в службе suspend-sedation
. Это запускается rtcwake
во время процесса приостановки, планируя пробуждение через 3 часа, после чего запускается hibernate
. В случае с моим ноутбуком я думаю, что спящий режим не работает, потому что раздел подкачки слишком мал. Я удивлен, что ничего не появилось в журнале, чтобы указать на это.
На данный момент целесообразным решением является отключение приостановки -успокоения (systemctl disable suspend-sedation.service
), поскольку спящий режим не является для меня непосредственным приоритетом. Это было протестировано за ночь и, похоже, работает.
Спасибо @GerardH.Pille за то, что указал мне правильное направление в комментариях к вопросу.