I have file names in a file which I need to delete in a different directory.
Let's say I have x and y files in dir a. How do I delete it using cat?
I tried,
rm -f a/{`cat a.txt`}
a.txt has contents x,y,z.
If they are in the same folder, I can put x y z in a.txt and run,
rm -f `cat a.txt`
which works fine.
I have also tried,
rm -f "a/{"`cat a.txt`"}"
This command will go in a dockerfile so I prefer not to use any variables too.
I do not want to put a/x a/y a/z in the file which can be an option, as it is fixed that a will only contain the files. But a should be changed only in the dockerfile. Thanks for all suggestions in advance :)
Assuming your filenames don't contain spaces or any special characters, just reuse your original command with a cd before it:
(cd a; rm -f $(cat a.txt))
Be warned that rm -f `cat a.txt` breaks easily with spaces or any special characters in filenames, you should really use xargs with NUL-delimited filenames.
No comments:
Post a Comment