I always wanted to learn how to pass a value to xargs somewhere in the middle of the command. The -I
option can do it where the {} is just a token replacer. For example, here is a way to search for an IP prefix in a bunch of text files:
echo 192.168.1. | xargs -I{} grep {} *.txt
Here is how to pass -l
to the middle of an ls {} -F
command:
$ echo "-l" | xargs -I{} ls {} -F
total 0
drwxr-xr-x@ 7 emartin staff 224 Nov 6 22:58 Folder1/
drwxr-xr-x@ 7 emartin staff 224 Nov 6 23:58 Folder2/
I am really going to find this handy to do things like doing a find and then copying the item to a base folder.
You can actually use almost any token for the -I
option.
(HT: Stack Exchange)