Командная строка очистить файл
В этом руководстве рассмотрим различные способы быстрого создания нового файла в CentOS 7 с помощью командной строки.
По мере изучения мною новых способов создания файлов, я буду пополнять данный список.
Все манипуляции будем производить в каталоге пользователя:
Перейти в другую папку — cd
Команда cd без аргументов выводит название текущей папки.
Перейти в папку внутри текущего каталога
Перейти на одну папку вверх
Перейти в папку на другом диске
Чтобы просто изменить диск, введите c: или d:
6. С помощью команды dd.
Команда dd в основном используется для преобразования и копирования файлов.
Чтобы создать файл с именем 1G.test размером 1 ГБ , вы должны выполнить:
Ответ:
Ctrl End делает то же самое для всех символов справа от курсора .
И то, и другое довольно полезно и, будучи усвоенным и привыкшим, может значительно ускорить редактирование в CMD.
Я не знал об этих нажатиях клавиш; благодарю вас. Можете ли вы получить голоса, которые вы заслуживаете.
Из bash (1): (Ctrl) + (X), (Rubout) определяется как обратная строка уничтожения ; то есть убить назад к началу строки; то же самое, что (Ctrl) + (Home) в Windows CMD. «Rubout» может быть Backspace или Delete, поэтому попробуйте (Ctrl) + (X), (Backspace) и (Ctrl) + (X), (Delete). Кроме того, (Ctrl) + (U) является unix-line-discard ; т.е. убить назад от точки вставки (курсора) до начала строки; то же самое, что и (Ctrl) + (Home). (Ctrl) + (K) определяется как kill-line ; то есть убить текст от точки вставки до конца строки; то же самое, что (Ctrl) + (End) в Windows CMD.
Просто чтобы прояснить: (Ctrl) + (U) - это давняя, общая черта Unix. Он работает в старых, не Linux, не GNU, не bash системах; это работает в vi ; это работает, если вы делаете cat > file123 . Другие относятся к командной строке bash.
Скажем, есть переменная с именем %pathtofolder% , которая проясняет, что это полный путь к папке.
Я хочу удалить все файлы и подпапки в этом каталоге, но не сам каталог.
Но может быть ошибка типа «этот файл / папка уже используется» . когда это происходит, нужно просто продолжить и пропустить этот файл / папку.
Есть ли какая-то команда для этого?
Это безумие, как трудно Windows удалить папки . Или создать папку, начинающуюся с точки . Слава богу за интеграцию Bash в Windows! rm -rf path\to\folder работает в Windows 10 (или может прийти из Git Bash . в любом случае, если у вас есть, что стоит попробовать!)
Вы можете использовать этот скрипт для очистки папки и файлов в C:\Temp исходном коде :
Создайте пакетный файл (скажем, delete.bat), содержащий указанную выше команду. Перейдите в папку, в которой находится файл delete.bat, а затем выполните команду: delete.bat
Я пробовал, но, к сожалению, файлы, которые не были удалены, удаляются только подпапки. Например, у меня есть папка с именем Test. Он содержит 2 папки с именами «Ripon» и «Wasim» и содержит файл с именем «riponalwasim.txt». Подпапки Ripon и Wasim были удалены, но riponalwasim.txt не был удален.
Используйте одиночный знак процента, если вы хотите работать напрямую из командной строки, например %p
Грустно, что это занимает 2 строки, но, по крайней мере, это работает! Я устал искать работающий «однострочник» и пойду с этим, спасибо!
Вы можете использовать оператор «&&» для выполнения двух команд в одной строке без файла bat (обратите внимание на один «%» вместо «%%»). del / s / q "myfolder *" && FOR / D% p IN ("myfolder *") DO rmdir "% p" / s / q
rmdir моя самая любимая команда для работы. Он работает для удаления огромных файлов и папок с подпапками. Резервная копия не создается, поэтому перед выполнением этой команды убедитесь, что вы скопировали свои файлы безопасно.
Это автоматически удаляет папку и все файлы и подпапки.
Это приведет к удалению самой папки, поэтому вам нужно добавить еще одну команду: md FOLDERNAME (см. Ответ от @rakoczyn ниже).
Что вы подразумеваете под «резервное копирование создано» здесь? Я не вижу ничего, что могло бы создать какую-либо резервную копию .
Чтобы не удалять саму папку, сделайте ее текущей папкой, а затем используйте «.» как FOLDERNAME. Повторное создание этого впоследствии не обязательно то же самое, потому что ACL могли быть потеряны. cd "FOLDERNAME" RD . /S /Q
Самое простое решение, которое я могу придумать, - это удалить весь каталог с помощью
Затем создайте этот каталог снова:
Что делать, если у вас есть разрешение на удаление, но не создание новых папок? Я надеюсь, что это возможно :)
Это плохое решение, так как оно приводит к гонке в файловой системе за узел каталога, то есть вторая команда может потерпеть неудачу, если выполняется сразу после нее.
Кроме того , плохое решение , если каталог имеет специальные разрешения , которые вы просто Nuked гм (упс)
RD и RMDIR - это одна и та же команда, и, поскольку вы опубликовали этот ответ через 9 месяцев после того, как кто-то дал тот же ответ, почему люди дают вам очки?
Это удалит папки и файлы и оставит папку позади.
Для тех, кто не уверен в этом подходе: он определенно не создает каталог заново. Без 2>nul него выводится «Процесс не может получить доступ к файлу, потому что он используется другим процессом».
Я ненавижу, что Windows не может удалить файлы и папки, используемые какой-либо программой. И мне нравится, что вы использовали это в свою пользу в этой строчке.
@mlvljr Только если вы хотите сохранить родительскую папку тоже. RD /? покажет вам простой способ очистить папку.
Это хорошо, если вам нужно вернуться на исходную позицию, иначе просто CD mypath && RD /S . будет достаточно. Мне не нравится, что вам приходится повторять свой путь дважды, хотя для длинных путей его становится трудно читать. Так что я бы просто добавил set p="mypath" в начале.
. удаляет все файлы и папки в данном каталоге, но не сам каталог.
это должен быть правильный ответ .. просто сделайте простой .. deletemyfoldercontents.bat файл .. вставьте ваш путь, и он работает как шарм ..
В командной строке DEL также отсутствует опция /A для удаления файлов со скрытым набором атрибутов, и %dir%\* их следует заключать в двойные кавычки, как, например, "%dir%\*" для каталогов, содержащих пробел или один из этих символов &()[]<>^=;!'+,`~ . И командную строку FOR следует изменить на, for /F "eol=| delims=" %%I in ('dir "%dir%\*" /AD /B 2^>nul') do rd /Q /S "%dir%\%%I" поскольку FOR игнорирует каталоги со скрытым набором атрибутов. DIR с параметрами /AD /B выводит все каталоги только с их именами. Кстати, dir это не хорошее название для переменной среды.
@RMiranda, в моих тестах, он делает именно так, как просил ОП. У вас есть случай, когда он не удаляет подпапки?
Отвечает ли этот ответ требованию «может быть ошибка типа« этот файл / папка уже используется ». когда это происходит, он должен просто продолжить и пропустить этот файл / папку». ?
Обновление :
Из этого полезного комментария (спасибо Moritz Both ) вы можете добавить && между ними, поэтому RMDIR не запустите, если CD команда не будет выполнена (например, имя каталога с ошибкой):
/ S: удаляет дерево каталогов (указанный каталог и все его подкаталоги, включая все файлы).
/ Q: Указывает тихий режим. Не запрашивает подтверждения при удалении дерева каталогов. (Обратите внимание, что / q работает, только если указан / s.)
Это идеально подходит для очистки temp, но это cd [Your_Folder] очень важно - я должен помнить об этом, чтобы не удалять сам каталог .
Это правильное решение. Добавьте && между командами вместо разрыва строки, и вы в безопасности от сбой CD.
довольно плохое решение . Мне, например, нужно это удаление командной строки для обновления SVN - я хочу удалить все файлы и папки, прежде чем я сделаю обновление SVN, потому что могут быть некоторые изменения на машине, где я использую это, но актуально только проверенные в пунктах. Делать RMDIR / S / Q. также удаляет ссылку SVN и, следовательно, больше не делает папку svn
RD расшифровывается как REMOVE Directory.
/ S: Удалить все файлы и подпапки в дополнение к самой папке. Используйте это, чтобы удалить все дерево папок.
/ Q: Тихо - не отображать подтверждение YN
Отвечает ли этот ответ требованию «может быть ошибка типа« этот файл / папка уже используется ». когда это происходит, он должен просто продолжить и пропустить этот файл / папку.»? Например, прерывается ли он полностью вместо продолжения?
Я использую Powershell
Он удалит содержимое папки, а не саму папку.
Ответ rhellem недавно, но это единственный ответ, который действительно сделает это для меня. (Win 8.1, не по выбору)
Простое решение для единой командной строки, которое, конечно же, также можно использовать в командном файле:
Эта командная строка содержит три команды, выполняемые одна за другой.
Первая команда PUSHD помещает текущий путь к каталогу в стек, а затем создает %PathToFolder% текущий каталог для запуска процесса команды.
Это также работает для путей UNC по умолчанию, поскольку расширения команд включены по умолчанию, и в этом случае PUSHD создает временную букву диска, которая указывает на указанный сетевой ресурс, а затем изменяет текущий диск и каталог, используя вновь определенную букву диска.
Система не может найти указанный путь.
Следующая команда RD выполняется только в том случае, если изменение текущего каталога для текущего командного процесса на указанный каталог прошло успешно, то есть указанный каталог вообще существует.
Команда RD с параметрами /Q и тихо /S удаляет каталог со всеми подкаталогами, даже если указанный каталог содержит файлы или папки со скрытым атрибутом или с установленным атрибутом только для чтения. Системный атрибут никогда не препятствует удалению файла или папки.
Папки, используемые в качестве текущего каталога для любого запущенного процесса. Все дерево папок в такой папке не может быть удалено, если папка используется в качестве текущего каталога для любого запущенного процесса.
Файлы, открытые в настоящее время любым запущенным процессом с правами доступа к файлу, установленными для открытия файла, чтобы предотвратить удаление файла во время открытия работающим приложением / процессом. Такой открытый файл также предотвращает удаление всего дерева папок в открытый файл.
Файлы / папки, для которых у текущего пользователя нет необходимых (NTFS) разрешений на удаление файла / папки, что также предотвращает удаление дерева папок в этот файл / папку.
Процесс не может получить доступ к файлу, потому что он используется другим процессом.
Третья команда, POPD , выполняется независимо от значения выхода команды RD .
POPD извлекает путь каталога, выдвинутый PUSHD из стека, и изменяет текущий каталог для запуска процесса команды на этот каталог, то есть восстанавливает исходный текущий каталог. POPD удаляет временную букву диска, созданную PUSHD в случае пути к папке UNC.
Примечание: POPD может молча прекратить восстановление первоначального текущего каталога в случае, если исходный текущий каталог был подкаталогом каталога для очистки, который больше не существует. В этом особом случае %PathToFolder% остается текущий каталог. Поэтому желательно запускать командную строку выше, а не из подкаталога %PathToFolder% .
Еще один интересный факт: я пробовал в командной строке также использовать UNC-путь, используя общий каталог C:\Temp с именем общего ресурса Temp и используя UNC-путь, \\%COMPUTERNAME%\Temp\CleanTest назначенный переменной среды PathToFolder в Windows 7. Если текущий каталог при запуске командной строки является подкаталогом общего локального каталога папка доступ с помощью UNC - пути, то есть C:\Temp\CleanTest\Subfolder1 , Subfolder1 удаляются с помощью РДА , а следующий POPD терпит неудачу молча делаю C:\Temp\CleanTest\Subfolder1 снова текущий каталог в результате Z:\CleanTest оставшегося в качестве текущего каталога для процесса команды работает. Таким образом, в этом очень особом случае временная буква диска остается до тех пор, пока текущий каталог не будет изменен, например, с помощью cd /D %SystemRoot% в локальный каталог действительно существует. К сожалению, POPD не завершается со значением больше 0, если не удается восстановить исходный текущий каталог, что делает невозможным обнаружение этого особого состояния ошибки, используя только код выхода POPD . Однако можно предположить, что никто никогда не сталкивался с этим особенным случаем ошибки, поскольку пути UNC обычно не используются для доступа к локальным файлам и папкам.
Чтобы лучше понять используемые команды, откройте окно командной строки, выполните там следующие команды и внимательно прочитайте справку, отображаемую для каждой команды.
Теперь давайте посмотрим на решение для пакетных файлов, используя команду DEL для удаления файлов в %PathToFolder% и FOR и RD для удаления вложенных папок в %PathToFolder% .
Пакетный файл сначала гарантирует, что переменная среды PathToFolder действительно определена с путем к папке без двойных кавычек и без обратной косой черты в конце. Обратная косая черта в конце не будет проблемой, но двойные кавычки в пути к папке могут быть проблематичными, поскольку PathToFolder во время выполнения пакетного файла значение объединяется с другими строками.
Важны две строки:
Команда DEL используется для удаления всех файлов в указанном каталоге.
Команды FOR и RD используются для удаления всех подкаталогов в указанном каталоге. Но for /D не используется, поскольку FOR игнорирует в этом случае подкаталоги с установленным атрибутом hidden. По этой причине for /F используется для запуска следующей командной строки в отдельном командном процессе, запущенном в фоновом режиме с помощью %ComSpec% /c :
Оператор перенаправления > должен быть экранирован с помощью символа вставки, ^ в командной строке FOR интерпретироваться как литеральный символ, когда интерпретатор команд Windows обрабатывает эту командную строку перед выполнением команды FOR, которая выполняет встроенную dir командную строку в отдельном запущенном командном процессе. на заднем фоне.
FOR обрабатывает захваченный вывод, записанный для обработки STDOUT запущенного командного процесса, которые являются именами подкаталогов без пути и никогда не заключаются в двойные кавычки.
Параметр FOR with /F игнорирует пустые строки, которые здесь не встречаются, поскольку DIR с параметром /B не выводит пустые строки.
FOR также игнорирует строки, начинающиеся с точки с запятой, которая является символом конца строки по умолчанию. Имя каталога может начинаться с точки с запятой. По этой причине eol=| используется для определения символа вертикальной черты как символа конца строки, который ни один каталог или файл не может иметь в своем имени.
FOR разделит строку на подстроки, используя пробел и горизонтальную табуляцию в качестве разделителей, и назначит только первую строку с пробелом / табуляцией для указанной переменной цикла I . Такое поведение разделения здесь нежелательно, поскольку имя каталога может содержать один или несколько пробелов. Поэтому delims= используется для определения пустого списка разделителей, чтобы отключить поведение разделения строк и получить присвоение переменной цикла I , всегда полное имя каталога.
Команда FOR запускает команду RD для каждого имени каталога без пути, поэтому в командной строке RD необходимо еще раз указать путь к папке, который объединяется с именем подпапки.
Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и внимательно прочитайте все страницы справки, отображаемые для каждой команды.
Программистам часто приходится работать в консоли — например, чтобы запустить тестирование проекта, закоммитить новый код на Github или отредактировать документ в vim. Всё это происходит так часто, что все основные действия с файлами становится быстрее и привычнее выполнять в консоли. Рассказываем и показываем основные команды, которые помогут ускорить работу в терминале под ОС Windows.
Для начала нужно установить терминал или запустить командную строку, встроенную в Windows — для этого нажмите Win+R и введите cmd. Терминал часто встречается и прямо в редакторах кода, например, в Visual Studio Code.
Чтобы ввести команду в консоль, нужно напечатать её и нажать клавишу Enter .
Переименование файла — ren или rename
Последовательно вводим ren, старое и новое имя файла.
Удалить папку — rmdir или rd
Чтобы удалить конкретную папку в текущей, введите команду rmdir .
При этом удалить можно только пустую папку. Если попытаться удалить папку, в которой что-то есть, увидим ошибку.
Чтобы удалить дерево папок, используйте ключ /s . Тогда командная строка запросит подтверждение перед тем, как удалить всё.
2. С помощью touch.
Команда touch позволяет обновлять временные метки на существующих файлов и каталогов, а также создание новых, пустых файлов.
Самый простой и запоминающийся способ создания новых пустых файлов — использование сенсорной команды.
Чтобы создать новый файл, просто запустите сенсорную команду с именем файла, который вы хотите создать:
Если файл file1.txt не существует, команда, приведенная выше, создаст его, в противном случае он изменит свои временные метки.
Чтобы создать несколько файлов одновременно, укажите имена файлов через пробел:
5. С помощью команды echo.
Чтобы создать новый файл, запустите команду echo , за которой следует текст, который вы хотите распечатать, и используйте оператор перенаправления, ‘ > ‘ чтобы записать вывод в файл, который вы хотите создать.
Если вы хотите создать пустой, просто используйте:
или еще вот так:
Показать дерево папок — tree
В любом момент мы можем увидеть структуру папок. Для этого используется команда tree .
Если вы хотите посмотреть содержимое всего диска, введите tree в корне нужного диска. Получится красивая анимация, а если файлов много, то ещё и немного медитативная.
2. С помощью touch.
Команда touch позволяет обновлять временные метки на существующих файлов и каталогов, а также создание новых, пустых файлов.
Самый простой и запоминающийся способ создания новых пустых файлов — использование сенсорной команды.
Чтобы создать новый файл, просто запустите сенсорную команду с именем файла, который вы хотите создать:
Если файл file1.txt не существует, команда, приведенная выше, создаст его, в противном случае он изменит свои временные метки.
Чтобы создать несколько файлов одновременно, укажите имена файлов через пробел:
Удаление файла — del или erase
Команда для удаления одного или нескольких файлов.
Ctrl Home позволяет очистить все символы ввода команды слева от курсора .
Команды одной строкой
Очистить консоль — cls
Информация о системе — systeminfo
Информация о сетевых настройках — ipconfig
Список запущенных процессов — tasklist
Справка по командам — help
Команда help без аргументов выводит список всех возможных команд. help вместе с именем команды выведет справку по этой команде.
В этой статье приведены не все команды и не все их возможности, но вы всегда можете воспользоваться командой help и узнать о том, что ещё может командная строка.
Консоль — важный инструмент веб-разработчика
Научитесь пользоваться всеми инструментами в HTML Academy, чтобы работать с кодом в большой компании.
7. С помощью команды fallocate.
Есть команда fallocate — утилита командной строки для выделения реального дискового пространства для файлов.
Следующая команда создаст новый файл с именем 1G.test размером 1 ГБ :
Создать папку — mkdir или md
Создаём пустую папку code внутри папки html :
Создаём несколько пустых вложенных папок — для этого записываем их через косую черту.
Создаётся папка css , внутри которой находится папка js . Чтобы проверить это, используем команду tree . Она показывает дерево папок.
Открыть файл
Чтобы открыть файл в текущей папке, введите его полное имя с расширением. Например, blog.txt или setup.exe.
Содержимое текущей папки — dir
Выводит список файлов и папок в текущей папке.
4. С помощью команды cat.
Команда cat в основном используется для чтения и объединения файлов, но также может использоваться для создания новых файлов.
Чтобы создать новый файл, запустите команду cat , а затем оператор перенаправления ‘ > ‘ и имя файла, который вы хотите создать.
Внимание! В начале покажется, что всё зависло, но, на самом деле, стройка сдвинулась и командная строка ждет ввода информации с клавиатуры!
Нажмите Enter введите текст, и как только вы закончите, нажмите одновременно комбинацию двух клавиш: CTRL+D, чтобы сохранить файл file1.txt .
3. С помощью оператора перенаправления.
Перенаправление позволяет вам захватывать выходные данные из команды и отправлять их в качестве входных данных для другой команды или файла.
Чтобы создать пустой файл нулевой длины, просто укажите имя файла, который вы хотите создать после оператора перенаправления:
Это самая короткая команда для создания нового файла в CentOS 7.
Внимание! При создании файла с использованием перенаправления будьте осторожны, чтобы не перезаписать важный существующий файл!
8. С помощью утилиты cp.
Команда cp создана для копирования файлов, если в качестве файла указать /dev/null то будет создан новый файл.
justhostRU, командная строка. В тегах ведь указан Windows и Linux. Интересует возможность, как это сделать в обоих системах.
rPman, Вы не поняли. Оба этих вопроса помимо Windows, еще под Linux. В первых двух вопросах в начале написано "Как через cmd. "
cmd, она же командная строка есть только под Windows
сергей кузьмин, Понятное дело, что cmd нет под Linux. Видимо я слишком непонятно составил 3-й вопрос. Первые 2 вопроса для Windows, так как там написано про cmd. В 3-м вопросе я имел ввиду, как решить эти первые 2 вопроса не только под Windows, но и под Linux. Переделаю.
в linux bash есть инструмент указания файлов для параметров любых утилит, запускаемых.
например если написать myapp *.txt то в командную строку myapp улетит список txt фалов.
Конкретно по задаче, чтобы удалить все файлы исключая указанные, то можно использовать следующую запись:
rm -f !(file.txt|data.dat)
Для удаления файлов, размер которых больше определенного, можно использовать find (его вообще рекомендуется для многих задач использовать, например исключить каталоги из поиска можно с помощью директивы -not):
find . -type f -size +5M -exec rm -f <> +
upd. для windows cmd все грустнее, на столько издевательски неудобного языка еще поискать нужно, штатно утилит которые бы позволили искать файлы и запускать код по заданной команде на сколько я занаю нет, можно написать цикл for и уже в его теле делать проверки, если имя неравно такому то или размер не больше. можешь не помечать ответом, мне просто лень да и проверить негде уже
нужные команды if, for /? и set /? там будут исчерпывающие примеры
Слишком часто я ввожу команду, выполняю ее, получаю много строк вывода, а затем хочу ввести другую команду. Но прежде чем вводить вторую команду, я нажимаю клавишу со стрелкой вверх, чтобы просмотреть первую команду, а затем обнаруживаю, что должен удерживать клавишу Backspace для примерно 30 символов. (Я не могу просто нажать снова, чтобы получить пустую строку. Также я не могу получить ее, нажав снова.)
У @myrddim это есть, но кроме этого, некоторые плохие альтернативы продолжают появляться, пока у вас не получится что-то короткое, а затем удерживайте клавишу Backspace. другой - сделать команду плохой командой или именем файла, или, скорее, «sdfd» не распознается как внутренняя или внешняя команда », поэтому переместите курсор немного левой стрелкой и просто коснитесь буквы или не нажимайте и просто нажмите на букву в конце, запутайте ввод cmd, затем нажмите ENTER, получите эту ошибку, и следующая строка будет пустой.
@ barlop Это действительно плохой обходной путь! Это займет всего одно нажатие клавиши. Если вы не можете использовать Esc ключ, вы можете использовать AutoHotkey для его симуляции.
Esc Клавиша Escape ( ) очистит строку ввода.
Кроме того, нажатие Ctrl+C переместит курсор на новую пустую строку. Это может быть полезно, поскольку только что просмотренные вами данные остаются видимыми при вводе новой команды.
Что было бы уместно, если бы вопрос не был специально направлен на командную строку Windows 7. :-) Кроме того, я считаю, что это зависит от оболочки, так как я вполне уверен, что некоторые оболочки имеют то же поведение, что и Windows при нажатии Ctrl+C .
Примечание: CTRL+C команда также завершит любой сеанс командной строки, который у вас есть, то есть python , и вернет вас обратно в среду командной строки.
Myyrddin покрыты Esc и Ctrl C которая очистки текущего ввода команд и инициировать новую линию соответственно.
Тем не менее, есть также еще два ярлыка, связанные с очисткой текущего ввода в CMD: Ctrl Home и Ctrl End .
Читайте также:
- Что такое файлы мультимедиа в телефоне
- Что будут кричать фашисты если их архивировать зип файл
- Принципы применения компьютерных средств обучения в образовательном процессе
- Я однажды вошел в дом думал сейчас компьютер включу а электричества не было
- Ваз 2115 бортовой компьютер показывает много пропусков зажигания