Sponsored Content
Full Discussion: Strange output from find
Top Forums Shell Programming and Scripting Strange output from find Post 302686303 by Lem on Tuesday 14th of August 2012 09:00:48 AM
Old 08-14-2012
First of all, please forgive my bad English.
Something you've written sounds a bit odd to me.

First: my find is GNU find 4.2.2 too, but my man find is like this one:
UNIX man pages : find ()
and not like this one:
find.

In my find manual I can't read any "given expression", but I read clearly: "If the expression contains no actions other than -prune, -print is performed on all files for which the expression is true."

Second: the manual I linked above is pretty clear about what is an expression, how is it made up of options, tests and actions, and what's find behaviour depending on them being true or false. If you haven't read it yet, I suggest you give it a try. I'm sure it will be of some help.

Third: action -prune doesn't mean "ignore it", but "do not descend into it, if it is a directory". So a pruned directory found by find is printed itself (but its content is ignored) if the action -print (the default action) is performed.

Fourth: besides Chubler_XL solution, you could go with:
Code:
find /home/xxxxxxxx -type d -iwholename "/home/xxxxxxxx/Backup/.system" -prune , -type f -perm -o+w

(however you don't need any parenthesis).
This way the first expression, before the comma, is evaluated (-prune works), but its return values are then discarded: the directory /home/xxxxxxxx/Backup/.system is found by the first expression in which -prune gives a true return value for that directory, but this true value is then discarded, so only true return values of the second expression (after the comma) will cause something to be printed (default action).
--
Bye
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Strange output from grep

Hi, I am getting different output for grep depending which directory I am in. The following is a transcript of my session, I am using egrep but have also used grep -E. The directory names have been changed for security: $pwd /dir1/dir2/dir3/dir4 $echo 000000 |egrep -v $echo $? 1 $cd ..... (10 Replies)
Discussion started by: Bab00shka
10 Replies

2. Shell Programming and Scripting

strange output

I had a similar script in solaris and it had no problem. I wrote this one in freeBSD and it gave me strange output. Can anyone please tell me why? thanks a lot #!/bin/sh #This is a shell script that checks file system capacity mounted on /home directory #If file system is over 90% capacity,... (1 Reply)
Discussion started by: k2k
1 Replies

3. Solaris

solaris 10 strange df output

hi, in solaris 10 SUN SPARC V245 server the following df -h output is showing . can i reuse the following disk space by deleting them /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 20G 5.2G 14G 27% /platform/sun4u-us3/lib/libc_psr.so.1... (2 Replies)
Discussion started by: phani.madiraju
2 Replies

4. Solaris

Getting strange output of who -r command

Hi At OK> prompt, I have run the boot -s command After system is coming on to multiuser state, when I run the " who -r" command, I get the following message # who -r run-level Oct 17 03:48 last= Means I dont see "S" after run-level keyword. Could any one... (2 Replies)
Discussion started by: amity
2 Replies

5. Solaris

Strange sar output

I was reviewing yesterday's sar file and came across this strange output! What in the world? Any reason why there's output like that? SunOS unixbox 5.10 Generic_144488-07 sun4v sparc SUNW,T5240 Solaris 00:00:58 device %busy avque r+w/s blks/s avwait avserv 11:20:01 ... (4 Replies)
Discussion started by: dangral
4 Replies

6. Solaris

Strange df output on solaris 9

Hi all, After deleting some large log files on solaris 9 machine I can see strange df output shows below /dev/vx/dsk/rootvol 45G 16384E 50G 39879076698694% / I thought it will back to normal once I restart it but did not. I have seen in sunsolve article 6362734 that "Solaris 8... (0 Replies)
Discussion started by: rajashekar333
0 Replies

7. Shell Programming and Scripting

Tcl:Very strange output!!

Hi, I using tcl script to perform certain conditions. Part of the results should have average . I couldn't figure out what 's the cause as the result of the average is Zero. Example of the case???? #!/usr/bin/tclsh set counter 500 set total 1000 puts "Total num: $total \n" puts ... (3 Replies)
Discussion started by: ENG_MOHD
3 Replies

8. UNIX for Advanced & Expert Users

strange output with du

Can someone please explain why I get two outputs with the du command? The first one gave me one. I also didn't ask for the second directory so why did it give that directory? $ du -h "/media/Part 1/Desktop/playlist" 775M /media/Part 1/Desktop/playlist $ du -h "/media/Part... (1 Reply)
Discussion started by: cokedude
1 Replies

9. UNIX for Advanced & Expert Users

Strange /etc/passwd output

Can someone please explain this to me? auser:x:500:500:Anne User:/home/auser:/bin/sh buser:x:501:501:Bob User:/home/buser:/bin/bash I'm used to it looking like this. What is the difference between the first name and second name? In the first case I had to use the first name to change my... (3 Replies)
Discussion started by: cokedude
3 Replies

10. Shell Programming and Scripting

Echo's strange output

Hi, Kindly help me to understand the behavior or logic of the below shell command $ echo $!# echo $echo $ $ $ echo !$# echo $# 0 I am using GNU bash, version 3.2.25(1)-release (2 Replies)
Discussion started by: royalibrahim
2 Replies
TEST(1) 						    BSD General Commands Manual 						   TEST(1)

NAME
test, [ -- condition evaluation utility SYNOPSIS
test expression [ expression ] DESCRIPTION
The test utility evaluates the expression and, if it evaluates to true, returns a zero (true) exit status; otherwise it returns 1 (false). If there is no expression, test also returns 1 (false). All operators and flags are separate arguments to the test utility. The following primaries are used to construct expression: -b file True if file exists and is a block special file. -c file True if file exists and is a character special file. -d file True if file exists and is a directory. -e file True if file exists (regardless of type). -f file True if file exists and is a regular file. -g file True if file exists and its set group ID flag is set. -h file True if file exists and is a symbolic link. This operator is retained for compatibility with previous versions of this pro- gram. Do not rely on its existence; use -L instead. -k file True if file exists and its sticky bit is set. -n string True if the length of string is nonzero. -p file True if file is a named pipe (FIFO). -r file True if file exists and is readable. -s file True if file exists and has a size greater than zero. -t file_descriptor True if the file whose file descriptor number is file_descriptor is open and is associated with a terminal. -u file True if file exists and its set user ID flag is set. -w file True if file exists and is writable. True indicates only that the write flag is on. The file is not writable on a read-only file system even if this test indicates true. -x file True if file exists and is executable. True indicates only that the execute flag is on. If file is a directory, true indi- cates that file can be searched. -z string True if the length of string is zero. -L file True if file exists and is a symbolic link. -O file True if file exists and its owner matches the effective user id of this process. -G file True if file exists and its group matches the effective group id of this process. -S file True if file exists and is a socket. file1 -nt file2 True if file1 exists and is newer than file2. file1 -ot file2 True if file1 exists and is older than file2. file1 -ef file2 True if file1 and file2 exist and refer to the same file. string True if string is not the null string. s1 = s2 True if the strings s1 and s2 are identical. s1 != s2 True if the strings s1 and s2 are not identical. s1 < s2 True if string s1 comes before s2 based on the binary value of their characters. s1 > s2 True if string s1 comes after s2 based on the binary value of their characters. n1 -eq n2 True if the integers n1 and n2 are algebraically equal. n1 -ne n2 True if the integers n1 and n2 are not algebraically equal. n1 -gt n2 True if the integer n1 is algebraically greater than the integer n2. n1 -ge n2 True if the integer n1 is algebraically greater than or equal to the integer n2. n1 -lt n2 True if the integer n1 is algebraically less than the integer n2. n1 -le n2 True if the integer n1 is algebraically less than or equal to the integer n2. If file is a symbolic link, test will fully dereference it and then evaluate the expression against the file referenced, except for the -h and -L primaries. These primaries can be combined with the following operators: ! expression True if expression is false. expression1 -a expression2 True if both expression1 and expression2 are true. expression1 -o expression2 True if either expression1 or expression2 are true. ( expression ) True if expression is true. The -a operator has higher precedence than the -o operator. Some shells may provide a builtin test command which is similar or identical to this utility. Consult the builtin(1) manual page. GRAMMAR AMBIGUITY
The test grammar is inherently ambiguous. In order to assure a degree of consistency, the cases described in the IEEE Std 1003.2 (``POSIX.2''), section D11.2/4.62.4, standard are evaluated consistently according to the rules specified in the standards document. All other cases are subject to the ambiguity in the command semantics. In particular, only expressions containing -a, -o, ( or ) can be ambiguous. EXIT STATUS
The test utility exits with one of the following values: 0 expression evaluated to true. 1 expression evaluated to false or expression was missing. >1 An error occurred. EXAMPLES
Implement test FILE1 -nt FILE2 using only POSIX functionality: test -n "$(find -L -- FILE1 -prune -newer FILE2 2>/dev/null)" This can be modified using non-standard find(1) primaries like -newerca to compare other timestamps. COMPATIBILITY
For compatibility with some other implementations, the = primary can be substituted with == with the same meaning. SEE ALSO
builtin(1), expr(1), find(1), sh(1), stat(1), symlink(7) STANDARDS
The test utility implements a superset of the IEEE Std 1003.2 (``POSIX.2'') specification. The primaries <, ==, >, -ef, -nt, -ot, -G, and -O are extensions. BUGS
Both sides are always evaluated in -a and -o. For instance, the writable status of file will be tested by the following command even though the former expression indicated false, which results in a gratuitous access to the file system: [ -z abc -a -w file ] To avoid this, write [ -z abc ] && [ -w file ] BSD
June 1, 2013 BSD
All times are GMT -4. The time now is 06:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy