如何删除文件和文件夹但保留目录结构并留下空文件而不是文件本身?

时间:2017-02-04 08:51:49

标签: python linux windows bash cmd

我想删除文件和文件夹,但保持目录结构不变。

但我还需要在当前路径中保留文件名。有点像,留下一个文本相同的空文本,而不是文件本身。

我的驱动器格式是NTFS。

4 个答案:

答案 0 :(得分:1)

在Bash 4+中,您可以执行以下操作,将某个路径下的所有文件清零:

shopt -s globstar
for file in /mnt/c/path/to/clean/**; do
    [[ -f $file ]] && : > "$file"
done

答案 1 :(得分:1)

您可以使用os.walk浏览目录结构并使用空文件重新填充每个文件(覆盖文件:

import io
import os

work_dir = '.'
for root, dirnames, filenames in os.walk(work_dir):
    for filename in filenames:
        path = os.path.join(root, filename)
        io.open(path, mode='w').close()

请参阅文档:https://docs.python.org/3/library/os.html

答案 2 :(得分:0)

对于Windows cmd解决方案

for /r "x:\path\to\clean" %a in (*) do ">%a" type nul

要从批处理文件运行它,需要转义百分号(加倍)

for /r "x:\path\to\clean" %%a in (*) do ">%%a" type nul

答案 3 :(得分:0)

在Windows 中,您可能希望使用robocopy command

rem // Create copy with zero-length files at temporary location:
robocopy "\path\to\your\dir" "\path\to\temp\dir" *.* /E /CREATE
rem // Move tree at temporary location onto original location:
robocopy "\path\to\temp\dir" "\path\to\your\dir" *.* /E /MOVE /IS