Как в Linux создать папку из файла?

Как в Linux создать папку из файла?

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

find . -iname "*.epub" -exec mv {} /data/EPUB \;

Это создало суперфайл со всеми epub-файлами, объединенными вместе. Есть ли способ снова их разбить? Есть ли команда, чтобы превратить суперфайл в папку?

решение1

Если вы сначала не создали каталог /data/EPUB, то по сути вы просто переименовываете каждый файл по одному, /data/EPUBкаждый раз перезаписывая предыдущий.

То, что у вас сейчас есть, — это не «суперфайл», а /data/EPUBпоследний файл .epub, который был перемещен, а все остальные файлы .epub были утеряны (так как они были перезаписаны при последующих перемещениях).

Простого способа их извлечения не существует.

Я предлагаю немедленно размонтировать устройство (если это возможно) и не выполнять дальнейшую запись, а затем использовать такую ​​программу, какТестДискпопытаться восстановить перезаписанные файлы (также подробные инструкцииздесь).

В будущем я рекомендую использовать mv -iфункцию, которая будет предлагать перезапись, тем самым выявляя любые ошибки, подобные этой.

Я также предлагаю взять за привычку добавлять завершающий символ /после имен каталогов, что также позволит отлавливать такие ошибки, выдавая ошибку, если каталог не существует (а не предполагая, что это файл), например:

find . -iname "*.epub" -exec mv -i {} /data/EPUB/ \;

Связанный контент