Commands tagged symbolic link (5)

  • This command finds and prints all the symbolic and hard links to a file. Note that the file argument itself be a link and it will find the original file as well. You can also do this with the inode number for a file or directory by first using stat or ls or some other tool to get the number like so: stat -Lc %i file or ls -Hid file And then using: find -L / -inum INODE_NUMBER -exec ls -ld {} +


    17
    find -L / -samefile /path/to/file -exec ls -ld {} +
    eightmillion · 2011-04-27 06:14:15 8
  • Tested with GNU and BSD ls. Show Sample Output


    1
    ls -la | grep ^l
    gatopan · 2014-08-11 03:06:48 8

  • 1
    cd -P .
    snipertyler · 2014-12-16 15:39:29 7
  • The "type" builtin command is handy to find out what executable will be used if you issue a command. But on some distros, particularly when using /etc/alternatives, certain executables get buried under layers and layers of symbolic links and it becomes hard to find which one. If you put the above command in your .bashrc, it adds a "-c" option to the type command that will weed through the symbolic links and prints the actual file that will be executed. Show Sample Output


    0
    type () { if [ "$1" = "-c" ]; then shift; for f in "$@"; do ff=$(builtin type -p "$f"); readlink -f "$ff"; done; else builtin type $typeopts "$@"; fi; }
    splante · 2011-04-07 18:57:51 5
  • This command stores data in the following files: files.txt, links.txt Find and read all symbolic links in /path1 and stores list in links.txt find /path1 -type l -exec readlink -f {} \; > links.txt Find all files in /path2 and stores list in files.txt find /path2 -type f > files.txt && Displays lines in files.txt that do not exist in links.txt grep -Fxv -f links.txt files.txt Show Sample Output


    0
    find /path1 -type l -exec readlink -f {} \; > links.txt && find /path2 -type f > files.txt && grep -Fxv -f links.txt files.txt
    codedecay · 2016-03-19 04:53:33 11

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands


Check These Out

This will take the last two commands from bash_history and open your editor with the commands on separated lines

Generate a Random MAC address
Use the following variation for FreeBSD: $ openssl rand 6 | xxd -p | sed 's/\(..\)/\1:/g; s/:$//'

Find unused IPs on a given subnet
Somewhat shorter version.

List files in directory tree with newest last

grep apache access.log and list IP's by hits and date - sorted

Exclude inserting a table from a sql import
Starting with a large MySQL dump file (*.sql) remove any lines that have inserts for the specified table. Sometimes one or two tables are very large and uneeded, eg. log tables. To exclude multiple tables you can get fancy with sed, or just run the command again on subsequently generated files.

list files recursively by size

Merge files, joining each line in one line

delay execution of a command that needs lots of memory and CPU time until the resources are available
[ 2000 -ge "$(free -m | awk '/buffers.cache:/ {print $4}')" ] returns true if less than 2000 MB of RAM are available, so adjust this number to your needs. [ $(echo "$(uptime | awk '{print $10}' | sed -e 's/,$//' -e 's/,/./') >= $(grep -c ^processor /proc/cpuinfo)" | bc) -eq 1 ] returns true if the current machine load is at least equal to the number of CPUs. If either of the tests returns true we wait 10 seconds and check again. If both tests return false, i.e. 2GB are available and machine load falls below number of CPUs, we start our command and save it's output in a text file. The ( ( ... ) & ) construct lets the command run in background even if we log out. See http://www.commandlinefu.com/commands/view/3115/ .

Say something out loud
Whatever arguments you pass will be spoken out loud. (Put it in a script or shell function.)


Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: