Thank you Peasant. The following would also solve the issue
But, I really don't understand how it works. So, please tell me what is the difference between the above one (your solution) and the one which I have given and suggest me which one is efficient.
I have a directory named https-abcd
Under that I have some directories, files and links.
One of those directories is with name logs and the logs directory has lot of files in it.
I need to tar the whole https-abcd directory excluding the logs directory only, I should get all the links, files and... (2 Replies)
Hi,
I am using a find command like below in my script:
find /outfiles -type f -name cat -o -name vi -o -name grep 2>/dev/null
Which will search for files like "cat" , "vi" or "grep" in the "/outfiles" and subdirectories.
I want to ignore a particular subdirectory from the search. I... (4 Replies)
Hi , Kindly help me out .:)
i want to find only the file t4 in directory t3. i am in dir t . the tree is as follows.
if i give,
find .
o/p is
.
./t4
./t1
./t1/t2
./t1/t2/t3
./t1/t2/t3/t4
./t1/t2/t4
./t1/t4
directories are like t/t1/t2/t3 and each directory has file t4.
my... (7 Replies)
Hi,
I want to list files only from the current dir and its child dir (not from child's child dir).
i have the following files,
./ABC/1.log
./ABC/2.log
./ABC/ABC1/A.log
./ABC/ABC1/B.log
./ABC/ABC1/XYZ/A1.log
./ABC/ABC1/XYZ/A2.log
Here i want to list only the log file from current... (1 Reply)
OK, I'm trying search and destroy tabs again.
This time I'm having trouble excluding certain directories from my search.
Here is what I have tried and it is not ignoring the top level build directory:
find . -path ./build -prune -name \*.java -o -print | xargs grep -i ' '
I don't... (6 Replies)
Hi,
i try to catch all files in a dir ,without going down in subdir , which don't have file extension and older than 10 days for example:
my dir :
drwxr-xr-x 7 notes01 notes 4096 Mar 8 14:11 .
drwxr-xr-x 116 root system 4096 Mar 9 11:17 ..
-rw-r----- 1 notes01... (4 Replies)
How do I run a find without is looking in ./Trash
gregg@gregg-desktop:/media/Audio$ find . -type f ! -name '*.jpg' -size 1M -print |head
find: `./.Trash-1000/expunged/2781324553/mp3-to-m4b-batch': Input/output error
find:... (0 Replies)
I am trying to find all .rhosts files on some unix systems. I tried just -name ".rhosts" but we have a lot of really large NFS and MVFS systems that I do not want to crawl and I am having a hard time excluding them. I also need to scan more than just /root /home and /users, so I really need to scan... (1 Reply)
I am into
cd /home/work/amey/history-*/
Under amey I have directories
history, history-1, history-2 and under history-2 I have got 2 files 3 and 2.
When I run the find command I get the below o/p.
find /home/work/amey/history-*/. -name . -o -prune -type f
/home/work/amey/history-1/.... (1 Reply)
Hi,
I have two files under two separate directories as in:
find . -name test.sh
./test.sh
./abc/test.sh
I want my find to only look for the file test.sh that is under the current directory and not one under /abc
How do I use prune to achieve this? I am on AIX (3 Replies)
Discussion started by: swasid
3 Replies
LEARN ABOUT CENTOS
shell-quote
SHELL-QUOTE(1) User Contributed Perl Documentation SHELL-QUOTE(1)NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS --debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.16.3 2010-06-11 SHELL-QUOTE(1)