Как переместить все файлы в текущей папке в подпапку?

Ссылка на ответ в https://askubuntu.com/a/550425/384849, вот еще одна работа, чтобы вызвать меню правого щелчка в виде списка.

Вы можете нажать кнопку [ f1] на клавиатуре, если в списке нет выделенного файла. https://askubuntu.com/a/550425/384849

Когда есть выделенный файл , это простой способ, который я нашел, чтобы отменить его. Вы можете случайно ввести несколько символов. Nautilus войдет в режим поиска. Если имя файла не совпадает с указанными вами символами, не будет выбрана заливка. Затем нажмите esc, чтобы выйти, и вы можете нажать клавишу Option, чтобы вызвать меню прямо сейчас.

Или вы можете пойти в один каталог вверх, а затем снова спуститься, чтобы отменить выбор файла.

47
задан 31 December 2011 в 18:38

4 ответа

Команда

mv !(new) new

должна выполнить трюк. Если это не сработает, сначала запустите shopt -s extglob.

Чтобы также перемещать скрытые файлы / каталоги (начиная с точки), сначала запускайте shopt -s dotglob. Итак, подведем итог:

shopt -s extglob dotglob
mv !(new) new
shopt -u dotglob

(лучше избегать dotglob, чтобы избежать неприятных сюрпризов).

66
ответ дан 25 May 2018 в 15:33
  • 1
    Спасибо за вашу информацию. Это работает для меня. Я долго его ищу. – Mughil 1 January 2012 в 18:24
  • 2
    можете ли вы упомянуть, что такое значение !(something)? – a deer 1 February 2016 в 16:46
  • 3
    @adeer, который просто не говорит (что-то). Другими словами, скопируйте все, но не что-то. Ясно, как грязь? – RockyMountainHigh 25 February 2016 в 07:33
  • 4
    очень. вам знакомы с эквивалентом zsh? – a deer 7 March 2016 в 14:16

Я нашел что-то вроде этого немного проще, это может сработать для вас хорошо:

ls | grep -v new | xargs mv -t new

Добавление объяснения к вышеупомянутому решению:

Из man-страниц :

mv -t
-t, --target-directory=DIRECTORY
      move all SOURCE arguments into DIRECTORY
grep -v
-v, --invert-match
      Invert the sense of matching, to select non-matching lines.

Объяснено по шагу:

mv -t
-t, --target-directory=DIRECTORY
      move all SOURCE arguments into DIRECTORY
[!d4 ] grep -v new вернет трубку к тому, что не соответствует новому grep -v
-v, --invert-match
      Invert the sense of matching, to select non-matching lines.
2
ответ дан 25 May 2018 в 15:33
  • 1
    Вы должны объяснить, что делает каждая команда и параметр. На первый взгляд я даже не уверен, что это работает. – WinEunuuchs2Unix 1 September 2017 в 02:20
  • 2
    Втягивание вниз и добавление upvote. Спасибо за объяснение. – WinEunuuchs2Unix 30 April 2018 в 04:49

Простая идея. Предполагая, что вы находитесь в / myuser, переименуйте загрузку на новый, создайте новый каталог загрузок, а затем переместите в него новое.

mv downloads new # downloads is now called new
mkdir downloads # create new directory downloads
mv new downloads # move new into it.
2
ответ дан 25 May 2018 в 15:33

Если вы хотите переместить все файлы из папки в одну из ее подпапок, вы можете использовать следующую команду:

find /myuser/downloads/ -type d -name 'new' -prune -type f | xargs mv -t /myuser/downloads/new

Он найдет все файлы, а затем переместит их в вашу подпапку.

@waltinator: добавлено -type d -name 'new' -prune, чтобы предотвратить обход /myuser/downloads/new.

1
ответ дан 25 May 2018 в 15:33
  • 1
    Я создал подкаталог с именем new и пробовал эту команду, я получаю mv: missing file operand и Try 'mv --help' for more information – mook765 13 October 2016 в 18:42

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

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