bug#32843: Feature request: rm -ir variant not asking about directories

2018-09-26 Thread Bernhard Voelker
On 9/26/18 11:19 AM, Niels Möller wrote:
> I have a large directory tree where most but not all directories are
> empty, and where I might want to keep a few of the existing files.
> 
> I can use rm -ir to get rm to ask me for each file if it should be
> deleted. But it also asks questions like
> 
>   rm: descend into directory 'foo'?
>   rm: remove directory 'foo'?
> 
> to which I'd always say yes (and then attempts to delete any non-empty
> directory fails with a clear warning message).
> 
> It would be less tedious if the questions about directories were
> suppressed. A reasonable command line flag might be 
> 
>   --interactive=non-dir
> 
> (If there are any entries which are niether files nor directories, e.g,
> a named pipe, I'd want rm to ask, hence "non-dir" rather than "file").
> 
> Another variant which would be useful is to traverse a directory tree
> and recursively delete all empty directories, without asking any
> questions. Would make sense as a --recursive/-r flag to rmdir, rather
> than a new option to rm.
> 
> I'm using GNU coreutils 8.28, which doesn't seem to have these features.

This report includes several aspects.  What exactly do you want to achieve?

If it is simply deleting all empty directories beneath DIR, then this can
already be achieved with existing tools/options:

  # Prepare some directories in DIR: a/a/a, a/a/c, ..., c/c/c.
  $ mkdir -p DIR/{a..c}/{a..c}/{a..c}

  # Place a file in each dir level,
  $ touch DIR/a/f DIR/b/a/f DIR/c/a/a/f

  # Delete all empty directories
  $ find DIR -depth -type d -empty -delete

  # See what's left:
  $ find DIR | xargs ls -ldog
  drwxr-xr-x 5 4096 Sep 26 20:33 DIR
  drwxr-xr-x 2 4096 Sep 26 20:33 DIR/a
  -rw-r--r-- 10 Sep 26 20:33 DIR/a/f
  drwxr-xr-x 3 4096 Sep 26 20:33 DIR/b
  drwxr-xr-x 2 4096 Sep 26 20:33 DIR/b/a
  -rw-r--r-- 10 Sep 26 20:33 DIR/b/a/f
  drwxr-xr-x 3 4096 Sep 26 20:33 DIR/c
  drwxr-xr-x 3 4096 Sep 26 20:33 DIR/c/a
  drwxr-xr-x 2 4096 Sep 26 20:33 DIR/c/a/a
  -rw-r--r-- 10 Sep 26 20:33 DIR/c/a/a/f

WRT changing the prompting  in rm: IMO the existing functionality is already
quite complex, so adding more complexity and even an option needs some good
justification.

Have a nice day,
Berny





bug#32843: Feature request: rm -ir variant not asking about directories

2018-09-26 Thread Niels Möller
I have a large directory tree where most but not all directories are
empty, and where I might want to keep a few of the existing files.

I can use rm -ir to get rm to ask me for each file if it should be
deleted. But it also asks questions like

  rm: descend into directory 'foo'?
  rm: remove directory 'foo'?

to which I'd always say yes (and then attempts to delete any non-empty
directory fails with a clear warning message).

It would be less tedious if the questions about directories were
suppressed. A reasonable command line flag might be 

  --interactive=non-dir

(If there are any entries which are niether files nor directories, e.g,
a named pipe, I'd want rm to ask, hence "non-dir" rather than "file").

Another variant which would be useful is to traverse a directory tree
and recursively delete all empty directories, without asking any
questions. Would make sense as a --recursive/-r flag to rmdir, rather
than a new option to rm.

I'm using GNU coreutils 8.28, which doesn't seem to have these features.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677.
Internet email is subject to wholesale government surveillance.