«Rm files *» удаляет все соответствия из всех подкаталогов?

Вы можете использовать UNetbootin для установки Ubuntu 15.04 из Windows 7 в систему с двойной загрузкой без использования диска cd / dvd или USB. Я пишу это из новой установки Ubuntu 15.04, используя следующий метод:

Резервное копирование всех ваших файлов ... на всякий случай Дефрагментация вашего диска C: \ [нажмите правой кнопкой мыши на диск C> щелкните вкладку «Инструменты»> «Дефрагментация» ] Проверьте наличие ошибок [щелкните правой кнопкой мыши диск C> щелкните вкладку «Инструменты»> «Проверка ошибок»], перезагрузитесь и дождитесь завершения работы приложения, система перезагрузится, когда закончите. Создать Нераспределенное Неформатированное свободное место на диске C [Панель управления> Администрирование> Управление компьютером> Диспетчер дисков> щелкните правой кнопкой мыши диск C> Сокращаемый том] Я считаю, что предлагаемое пространство для полной установки Ubuntu - 16 гигабайт, я сделал 41 000 МБ около 40 гигабайт. Просто введите размер в уже выбранное поле. Формулировка MS использует запутанную уверенность в том, что ввод 41000 сделает свободное место 40Gig. нажмите «Далее», если он запросит формат. НЕ И НЕ ИСПОЛЬЗУЙТЕ письмо для вновь созданного тома. Перезагрузите Windows 7 пару раз, чтобы убедиться, что изменения в томе приняты без ошибок. Загрузите Ubuntu 15.04 ISO Run UNetbootin [выберите переключатель образа диска и выберите загруженный образ ISO Ubuntu. Убедитесь, что в раскрывающемся списке выбран тип: жесткий диск. Убедитесь, что диск: диск C: \ выбран в раскрывающемся списке. Нажмите «ОК». Программа будет выполняться через 4 шага, а затем попросит перезагрузиться ... Comply. Во время перезагрузки у вас будет выбор между Windows и UNetbootin, [Выберите UNetbootin]. Это приведет к загрузке Live CD перед установкой рабочего стола. После того, как вы немного оглядетесь, вы заметите ярлык Install Ubuntu 15.04 на рабочем столе [начните установку, я думаю, что 4-й шаг установки показывает основной том с Windows и свободное пространство, которое вы создали с помощью Дискового Менеджера. [Убедитесь, что вы нажимаете свободное пространство и устанавливаете его для «/», нажмите «Продолжить установку»]. Через несколько минут он автоматически перезагрузится. Если вы не нажимаете какие-либо клавиши, по умолчанию будет установлена ​​Ubuntu OS. Пусть он загрузится. настройте свой Wi-Fi вокруг, а затем перезагрузитесь, когда будете готовы. После перезагрузки стрелка в Windows и загрузите загрузчик Windows 7, где вы увидите, что UNetbootin по-прежнему является выбором. Windows будет по умолчанию там и позволит загрузиться.

Как я уже говорил, я набираю это из Chromium, работающего на Ubuntu 15.04. Я написал все это, чтобы вы не беспокоились об использовании другого программного обеспечения раздела, такого как Gparted или Parted Magic. Нет необходимости покупать что-либо У Windows уже есть хороший инструмент> Disk Manager

Буду честно, мне все равно нужно выяснить, как удалить загрузчик UNetbootin из загрузчика Windows, но это небольшая проблема, я просто «Frugal Installed» Ubuntu успешно. :

)
12
задан 28 May 2017 в 22:38

12 ответов

Нет. Нормальное globbing * не является рекурсивным и не является rm.

Если имя каталога совпадает, оно не будет удалено - для удаления каталога вам понадобится флаг -r. [!d1 ]

Так что это безопасно, если вы уверены, что хотите удалить эти файлы.

Вы также можете сделать rm интерактивным

rm -i wordpress-*.sql

, после чего он будет попросите подтверждение перед удалением каждого файла

20
ответ дан 22 May 2018 в 22:08
[D0] Нет. Нормальное globbing * не является рекурсивным и не является rm.

Если имя каталога совпадает, оно не будет удалено - для удаления каталога вам понадобится флаг -r.

Так что это безопасно, если вы уверены, что хотите удалить эти файлы.

Вы также можете сделать rm интерактивным

rm -i wordpress-*.sql

, после чего он будет попросите подтверждение перед удалением каждого файла

20
ответ дан 18 July 2018 в 12:34
[D0] Нет. Нормальное globbing * не является рекурсивным и не является rm.

Если имя каталога совпадает, оно не будет удалено - для удаления каталога вам понадобится флаг -r.

Так что это безопасно, если вы уверены, что хотите удалить эти файлы.

Вы также можете сделать rm интерактивным

rm -i wordpress-*.sql

, после чего он будет попросите подтверждение перед удалением каждого файла

20
ответ дан 24 July 2018 в 19:59

Да, это делает трюк для вас и удаляет все файлы с этой схемой в текущем каталоге. И нет, он не удаляет файлы в подкаталогах.

Когда вы не уверены, что произойдет, когда вы запустите команду, например:

rm wordpress-*.sql

, тогда просто запустите ее используя ls:

ls wordpress-*.sql

файлы, которые вы видите на выходе, будут удалены.

Когда вы пытаетесь получить список вроде: foo*, лучше использовать переключатель -d с ls, чтобы предотвратить листинг файлов с каталогом с именем foobar/ и т. д.

ls -d foo*

Этот трюк работает для команд, которые не используются для выполнения задания рекурсивно .

Другое, что вы можете сделать, это ввести нужный вход, например: wordpress-*, затем нажать Ctrl + Alt + *, и теперь все совпадения будут автоматически введены перед вашей командой. [!d6 ]

14
ответ дан 22 May 2018 в 22:08
  • 1
    Мой любимый метод: printf "%s\n" wordpress-*.sql – wjandrea 28 May 2017 в 23:41
  • 2
    Вы также можете притворяться Echo как echo rm file*. Особенно искать враждебные имена файлов, такие как -rf – eckes 29 May 2017 в 09:41
  • 3
    @eckes: вы можете более безопасно защищать их с помощью rm ./* или rm -- *. – David Foerster 29 May 2017 в 20:59
  • 4
    Да, или используйте xargs -0 @DavidFoerster – eckes 29 May 2017 в 23:33
  • 5
    если вы ходите ls foo*, и у вас есть каталог с именем foobar, вы также получаете список содержимого этого каталога, поэтому простой ls на самом деле не лучший способ попасть в rm – ilkkachu 30 May 2017 в 11:32

Нет, rm не рекурсирует через подкаталоги.

См. Удаление сопоставленных файлов во всех подкаталогах - SuperUser для методов удаления файлов в подкаталогах.

Если вы когда-либо были Если вы хотите случайно удалить что-то важное, используйте gvfs-trash (который отправляет файлы в корзину) вместо rm (который навсегда удаляет файлы).

12
ответ дан 22 May 2018 в 22:08
  • 1
    Спасибо за gvfs-trash упоминание о том, что что-то сегодня почти не использует ... – George Udosen 28 May 2017 в 22:36

Если вы хотите найти и удалить все соответствующие файлы, такие как wordpress-*.sql, вы можете использовать команду find. :)

Например, вы хотели бы удалить все соответствующие файлы с wordpress-*.sql в разделе test_dir, выполните следующие действия.

cd test_dir
find . -name "wordpress-*.sql" -exec rm -f {} \;

Всякий раз, когда программа find находит соответствующий файл, он пытается выполнить команду, следующую после опции -exec. В этом случае rm -f {} будет выполнен, а {} будет изменен на имя файла соответствия. Например.

rm -f wordpress-169.sql

Вы также можете установить глубину подкаталогов с опцией -maxdepth.

cd test_dir
find . -maxdepth 3 -name "wordpress-*.sql" -exec rm -f {} \;

Обратите внимание, что перед другими параметрами вы должны указать опцию -maxdepth. В противном случае вы можете встретить результаты, которые вы действительно не хотите видеть.

-1
ответ дан 22 May 2018 в 22:08
  • 1
    OP хочет наоборот: не переписывать в подкаталоги. – Melebius 30 May 2017 в 09:10
  • 2
    GNU find: " параметры влияют на все тесты, включая тесты, указанные перед опцией & quot ;, список нижеуказанных вариантов включает -maxdepth. Используйте -exec rm -f {} +, а не -exec \;, или еще лучше, просто -delete – ilkkachu 30 May 2017 в 11:35

Если вы хотите найти и удалить все соответствующие файлы, такие как wordpress-*.sql, вы можете использовать команду find. :)

Например, вы хотели бы удалить все соответствующие файлы с wordpress-*.sql в разделе test_dir, выполните следующие действия.

cd test_dir find . -name "wordpress-*.sql" -exec rm -f {} \;

Всякий раз, когда программа find находит соответствующий файл, он пытается выполнить команду, следующую после опции -exec. В этом случае rm -f {} будет выполнен, а {} будет изменен на имя файла соответствия. Например.

rm -f wordpress-169.sql

Вы также можете установить глубину подкаталогов с опцией -maxdepth.

cd test_dir find . -maxdepth 3 -name "wordpress-*.sql" -exec rm -f {} \;

Обратите внимание, что перед другими параметрами вы должны указать опцию -maxdepth. В противном случае вы можете встретить результаты, которые вы действительно не хотите видеть.

-1
ответ дан 18 July 2018 в 12:34

Да, это делает трюк для вас и удаляет все файлы с этой схемой в текущем каталоге. И нет, он не удаляет файлы в подкаталогах.

Когда вы не уверены, что произойдет, когда вы запустите команду, например:

rm wordpress-*.sql

, тогда просто запустите ее используя ls:

ls wordpress-*.sql

файлы, которые вы видите на выходе, будут удалены.

Когда вы пытаетесь получить список вроде: foo*, лучше использовать переключатель -d с ls, чтобы предотвратить листинг файлов с каталогом с именем foobar/ и т. д.

ls -d foo*

Этот трюк работает для команд, которые не используются для выполнения задания рекурсивно .

Другое, что вы можете сделать, это ввести нужный вход, например: wordpress-*, затем нажать Ctrl + Alt + *, и теперь все совпадения будут автоматически введены перед вашей командой.

14
ответ дан 18 July 2018 в 12:34

Нет, rm не рекурсирует через подкаталоги.

См. Удаление сопоставленных файлов во всех подкаталогах - SuperUser для методов удаления файлов в подкаталогах.

Если вы когда-либо были Если вы хотите случайно удалить что-то важное, используйте gvfs-trash (который отправляет файлы в корзину) вместо rm (который навсегда удаляет файлы).

12
ответ дан 18 July 2018 в 12:34

Если вы хотите найти и удалить все соответствующие файлы, такие как wordpress-*.sql, вы можете использовать команду find. :)

Например, вы хотели бы удалить все соответствующие файлы с wordpress-*.sql в разделе test_dir, выполните следующие действия.

cd test_dir find . -name "wordpress-*.sql" -exec rm -f {} \;

Всякий раз, когда программа find находит соответствующий файл, он пытается выполнить команду, следующую после опции -exec. В этом случае rm -f {} будет выполнен, а {} будет изменен на имя файла соответствия. Например.

rm -f wordpress-169.sql

Вы также можете установить глубину подкаталогов с опцией -maxdepth.

cd test_dir find . -maxdepth 3 -name "wordpress-*.sql" -exec rm -f {} \;

Обратите внимание, что перед другими параметрами вы должны указать опцию -maxdepth. В противном случае вы можете встретить результаты, которые вы действительно не хотите видеть.

-1
ответ дан 24 July 2018 в 19:59
  • 1
    OP хочет наоборот: не переписывать в подкаталоги. – Melebius 30 May 2017 в 09:10
  • 2
    GNU find: & quot; параметры влияют на все тесты, включая тесты, указанные перед опцией & quot ;, список нижеуказанных вариантов включает -maxdepth. Используйте -exec rm -f {} +, а не -exec \;, или еще лучше, просто -delete – ilkkachu 30 May 2017 в 11:35

Да, это делает трюк для вас и удаляет все файлы с этой схемой в текущем каталоге. И нет, он не удаляет файлы в подкаталогах.

Когда вы не уверены, что произойдет, когда вы запустите команду, например:

rm wordpress-*.sql

, тогда просто запустите ее используя ls:

ls wordpress-*.sql

файлы, которые вы видите на выходе, будут удалены.

Когда вы пытаетесь получить список вроде: foo*, лучше использовать переключатель -d с ls, чтобы предотвратить листинг файлов с каталогом с именем foobar/ и т. д.

ls -d foo*

Этот трюк работает для команд, которые не используются для выполнения задания рекурсивно .

Другое, что вы можете сделать, это ввести нужный вход, например: wordpress-*, затем нажать Ctrl + Alt + *, и теперь все совпадения будут автоматически введены перед вашей командой.

14
ответ дан 24 July 2018 в 19:59
  • 1
    Мой любимый метод: printf "%s\n" wordpress-*.sql – wjandrea 28 May 2017 в 23:41
  • 2
    Вы также можете притворяться Echo как echo rm file*. Особенно искать враждебные имена файлов, такие как -rf – eckes 29 May 2017 в 09:41
  • 3
    @eckes: вы можете более безопасно защищать их с помощью rm ./* или rm -- *. – David Foerster 29 May 2017 в 20:59
  • 4
    Да, или используйте xargs -0 @DavidFoerster – eckes 29 May 2017 в 23:33
  • 5
    если вы ходите ls foo*, и у вас есть каталог с именем foobar, вы также получаете список содержимого этого каталога, поэтому простой ls на самом деле не лучший способ попасть в rm – ilkkachu 30 May 2017 в 11:32

Нет, rm не рекурсирует через подкаталоги.

См. Удаление сопоставленных файлов во всех подкаталогах - SuperUser для методов удаления файлов в подкаталогах.

Если вы когда-либо были Если вы хотите случайно удалить что-то важное, используйте gvfs-trash (который отправляет файлы в корзину) вместо rm (который навсегда удаляет файлы).

12
ответ дан 24 July 2018 в 19:59
  • 1
    Спасибо за gvfs-trash упоминание о том, что что-то сегодня почти не использует ... – George Udosen 28 May 2017 в 22:36

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

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