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