Change attributes of all symlink targets in a directory

1

How to change attributes of all symlink targets inside a directory ?

/usr/bin/find /mydir -type l | xargs /bin/readlink | /usr/bin/chattr +s

piping three commands wont works.

Thanks.

Dan

Posted 2013-01-27T06:22:42.113

Reputation: 13

Answers

1

/usr/bin/find /mydir -type l -exec /bin/readlink {} \; | xargs -d'\n' /usr/bin/chattr +s

This will

  1. find the links and return the targets, newline separated, through the readlink utility and
  2. split incoming arguments on newline and run chattr on all targets.

A problem could occur if you have newlines within file names, but that is usually just a hypothetical problem.

Daniel Andersson

Posted 2013-01-27T06:22:42.113

Reputation: 20 465

0

/usr/bin/find /mydir -type l -exec /usr/bin/chattr +s '{}' \;

int

Posted 2013-01-27T06:22:42.113

Reputation: 406