Я використовую наступну команду, щоб очистити каталог, файли та каталоги старше 30 днів, і переміщу їх до каталогу архівів, який я можу видалити через кілька тижнів, якщо ніхто не вимагає повернення їх файлів. Цільовий каталог має підкаталоги за іменем користувача, як і каталог архівів.
Це команда, яку я використовую:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Я запропонував модифіковану версію цього , щоб відповісти на питання про те, запитати Убунту, інший користувач редагує код , щоб змінити кінець рядка \;для , +як це швидше (і правильніше?). Дивіться тут
Однак використання +цього способу працює, якщо -execкоманда є, ls -lhале не є фактичною командою, яку я використовую. Якщо я спробую це, +я отримаю повідомлення про помилку:
find: missing argument to '-exec'
Я не розумію, чому так поводиться, чи якою була б правильна команда. Будь ласка, не просто публікуйте корекцію команди, я хотів би зрозуміти, а не просто сліпо виконувати пропозицію.
+подає кілька аргументів до однієї команди, але mvне впорається з цим!