Não remove a pasta, mas os arquivos removidos

-1

Exclua todos os arquivos no projeto de trabalho, mas não exclua o diretório de trabalho, use a opção interativa com –r (verifique o manual do comando rm para fazer isso)

    
por C-kariin Daahir 29.12.2017 / 06:45

1 resposta

2

Para manter a estrutura de diretórios, mas remover apenas os arquivos regulares executados.
find /tmp/work -type f -delete

Para remover interativamente os diretórios e arquivos executados.
rm /tmp/work/* -irv
A bandeira 'i' fará com que o rm peça permissão para cada remoção. O sinalizador 'r' dirá ao rm para remover arquivos recursivamente. A bandeira 'v' faz com que você diga o que está fazendo.

# use brace expansion to create three levels of directories. The -p flag tells mkdir to create parent directories as needed.
mkdir -p /tmp/work/dir_{A..D}/dir_{a,b}
# tree will show the directory structure.
tree /tmp/work
/tmp/work
├── dir_A
│   ├── dir_a
│   └── dir_b
├── dir_B
│   ├── dir_a
│   └── dir_b
├── dir_C
│   ├── dir_a
│   └── dir_b
└── dir_D
    ├── dir_a
    └── dir_b
# For testing create empty files in each dir_a
touch /tmp/work/dir_{A..D}/dir_a/test.txt
# to Find what files will be deleted
find /tmp/work -type f
/tmp/work/dir_B/dir_a/test.txt
/tmp/work/dir_D/dir_a/test.txt
/tmp/work/dir_C/dir_a/test.txt
/tmp/work/dir_A/dir_a/test.txt  

# if the correct files were found now run the command but include the delete flag
find /tmp/work -type f -delete
# if however you would prefer to remove both files and the directories interactively. The 'i' flag will make rm ask for permission for each removal. The 'r' flag will tell rm to recursively remove files. The 'v' flag makes rm tell you what it is doing.
rm /tmp/work/* -irv
    
por J. Starnes 29.12.2017 / 07:41