
Explore the course program and set up a test environment with a Windows host for Linux VMs, then master find commands to locate files by name, type, or content.
Explore the linux basics course materials, including the survival guide and installation tips. Reference the quick reference card for find and locate commands and the setup scripts to streamline installations.
Install and configure a Windows 10 environment to run three virtual machines on a host-only network, with a router VM and Google DNS for a controlled course test environment.
Check if your CPU supports virtualization and enable it in the BIOS; on Windows, verify virtualization in Task Manager's Performance tab. If unsupported, consult processor specs to confirm support.
Download and install VirtualBox on Windows 10 by running the installer and accepting defaults. Create shortcuts, permit disk changes, finish the setup, and launch the welcome screen to start VirtualBox.
Configure the host-only network in VirtualBox by using the host network manager to set the adapter IP to 192.168.212.2 and the server value to 122, then apply changes.
Download CentOS 7 minimal ISO on Windows 10 and verify its integrity by using a checksumming utility and matching the checksum.
Configure a linux 64-bit router vm in VirtualBox by creating the machine, allocating 1 gb RAM, a fixed hard disk, and enabling a host-only network with a custom mac address.
Set up and configure a router virtual machine, including network settings, IP address, gateway, and firewall rules, then verify internet connectivity.
Configure a client virtual machine by creating a Linux 64-bit VM, allocating 1024 MB RAM, 8 GB disk, attaching an ISO, changing the MAC address for host-only networking and ipv4.
Install a client virtual machine by navigating the installer, choosing minimal install, configuring language, time zone, destination, network and root user, then reboot and verify internet connectivity.
Configure a 64-bit linux vm with 1 gb ram and an 8 gb vdi. Attach a CentOS 7 iso and configure the network with a mac address and an ip.
Install the virtual machine via the setup wizard, configure language, time zone, destination, network, and hostname, then set a root password, create a user, and verify internet access after reboot.
Create a Linux 64-bit VM with 1024 MB RAM and a fixed-size VDI disk. Attach the CentOS 7 ISO, set the MAC to zero, and use IPv4 192.168.122.54.
Install the iSCSI VM and configure IPv4 networking with a manual address, gateway, and DNS. Set the hostname and create root and user passwords, perform a minimal install, and reboot.
Install and configure PuTTY on Windows, setting default session settings and adjusting window size and colors. Create and save sessions for multiple virtual machines and verify connectivity across the network.
Generate a public/private key pair to enable public key authentication and save the private key securely. Add the public key to the client VM's authorized_keys for passwordless login.
Distribute RSA keys across virtual machines, export and convert private keys, set proper permissions, generate public keys, and enable passwordless login between the VMs.
Learn to distribute SSH keys to multiple virtual machines, configure key-based authentication, and verify passwordless logins across three virtual machines.
Install gnome desktop on the client vm by updating rpm packages with yum, installing the desktop group, and enabling the graphical target; reboot and log in to the graphical desktop.
Download and install WinSCP, complete the installer steps, and create a desktop shortcut; configure a session with host name or vm ip address, using local account credentials and save passwords.
Download and install the course scripts, start the router and client VMs, copy scripts to the client bin directory, add bin to PATH, and verify the directory tree with find.
Start the course environment on Windows 10 by booting the router VM first in Oracle VM VirtualBox to enable DNS and internet, then boot client VM and connect with PuTTY.
Install CentOS 7 and set up a controlled lab environment using KVM with libvirt, creating three interconnected virtual machines that access the internet and the host via a bridged network.
Download and verify the CentOS 7 minimal ISO on Windows 10, using a checksum utility to confirm integrity after installing dot net framework.
Learn how to create a CentOS 7 boot USB on Windows 10 by downloading the minimal ISO and writing it to a USB drive with Win32.
Download CentOS 7 minimal ISO on Linux using Firefox, save the file, then calculate and verify the checksum to ensure integrity.
Create a CentOS 7 boot USB on Linux by copying the ISO to the USB disk, running as root, and monitoring progress via terminal during the process.
Learn to install CentOS 7 on a physical machine, selecting UEFI or legacy boot, configure time zone, perform partitioning, set up network access, and create root and user passwords.
determine CPU virtualization support on Linux by using grep commands, checking cores, and confirming VT-x or AMD-V availability; if disabled in BIOS, switch to another system for this course.
Install the GNOME desktop on CentOS 7 by updating the system with yum, rebooting for kernel updates, installing the GNOME desktop, and enabling the graphical.target for graphical boot.
Install virtualization software, configure storage by creating partitions and a volume group for virtual disks, and start the storage pool via the Virtual Machine Manager.
Download the CentOS 7 minimal ISO using Firefox, then verify its integrity with sha256sum by comparing the checksum that begins with 714 and ends with 1fd.
install a client virtual machine on centos 7 via virtual machine manager, selecting local install media and the centos 7 iso, and configure memory and basic network.
Install a CentOS 7 virtual machine using the Virtual Machine Manager, configure storage, network, and DNS, set the root password, create a user, complete installation, and verify internet connectivity.
Install an iSCSI VM on CentOS 7 using Virtual Machine Manager, configure memory and storage, set a fixed IP with DNS, set root and user passwords, and verify internet connectivity.
Learn to generate and distribute SSH keys, configure passwordless login across multiple virtual machines, and manage known_hosts and authorized_keys for secure, automated SSH authentication.
Install the Guenon desktop on the Linux client, update RPMs with yum, set the graphical target, reboot, then complete setup with login and keyboard and privacy options.
Download and install the core scripts, log into the student client VM, access course resources, copy and stage the scripts, create the scripts directory, and verify the directory tree.
Learn to work with a CentOS 7 environment by configuring aliases in .bashrc, sourcing the file, and managing virtual machines—start, stop, and verify autostart from the terminal.
Explore basic find commands to search for files on a Linux system, using statements, operators, and options to locate by name or type, with starting points and related exercises.
Explore a sample directory tree and its depth, from root level 0 to level 3. Learn how directories differ from leaves and how the find command shows paths.
Set the starting point for find using the current directory or a chosen path, observe how wildcards behave, and verify that multiple starting points are supported.
This lecture demonstrates limiting the find output by depth using mindepth and maxdepth, with starting-point examples showing 0 and 2 levels deep.
Learn to locate files by name using the Linux find command, exploring name-based searches, type filtering, and advanced patterns with globbing and regular expressions for precise results.
Explore how to use the Linux find command to locate files by type—regular files, directories, symbolic links, and device files—with practical examples of -type and -print or -ls.
Demonstrates how to find unix domain sockets and fifos using find, and shows how to create, listen, and connect to sockets and fifos for inter-process communication.
Explore how the find command detects and navigates filesystem loops caused by symbolic links, and learn to suppress warnings with the -B physical option and redirect the standard error output.
Learn to use the find operator syntax to locate directories and symbolic links that point to directories, using -type d and escaping parentheses.
Explore using the find command to stay on the root file system with -xdev, view mounted block devices, and learn how multiple starting points can double-count files.
Learn to delete directories with find using -exec and -delete, suppress warnings, and use -depth to delete leaf directories safely.
Learn to determine directory depth with the find command by counting levels. Use awk -F / to count fields, subtract two, and sort results to solve the /usr depth exercise.
Learn to determine directory depth with the find command, piping output through less and awk to print the number of fields, subtract two, and sort uniquely to reveal deepest levels.
Explain the swap partition exercise by examining root swap, symbolic links to the swap block device, and how the swap relates to the logical volume and device mapper devices.
Discover how to locate the swap partition and trace its symbolic links to device mapper blocks using find and grep; relate logical volumes and volume groups to /dev/dm- and swap.
Demonstrates handling an ex-employee's files by creating a shared group and directory, adjusting permissions, testing with joan, and deleting joan's files using id and find.
Identify and remove a departed user's files on Linux by locating user id 1001, deleting the user with userdel, using find to delete remaining files, and verifying cleanup.
Explore basic find commands to locate files on Linux, using -name, -regex, -type, and -L, and combine predicates with -and/-or/-not for complex queries, with -delete or -exec for safe deletion.
Learn to find and change files by content using find, xargs, grep, and the sed -i option to perform targeted edits.
Learn to use xargs to run a command on each item from standard input, building file lists with find and grep, and perform in-place edits and timestamp updates.
Explore using xargs to read from standard input and pass to commands, then build and inspect a directory tree with ls -l, rm, find, grep, sed, and touch.
Learn to locate specific repository IDs and their enabled status using grep patterns, count disabled repos, and enable or list yum repositories with config manager.
Learn to enable all repositories while excluding cd-rom sources, using grep and sed -i, and verify the result with line counts.
Learn how to handle spaces in filenames when using find and xargs by using null-terminated inputs with -print0 and -0, avoiding errors from spaces.
Explore the power of find and xargs by listing files and piping to single commands like grep and sed, and learn how yum repositories work and which are enabled.
Learn to copy directory trees with find to reproduce a project structure for testing, generate scripts for use cases, and compose a command from find parts using mindepth and maxdepth.
Explore the while read line pattern for processing a list one line at a time in a loop. See the line variable in use and echo -e handling backslashes.
Learn to process input line by line using the while read line pattern in a practical shell demo, including echo output, counters, and using find to generate a list.
Demonstrate target path construction by performing substitutions in the command line, echoing results, and using common substitution to modify directory paths and display outputs.
Demonstrates constructing a target path from the find command, using command substitution to store results in a variable, and copying directory trees recursively.
Practice a naive recursive copy of directory trees, diagnose why the result differs from the target, and refine the code with logging to show exact recursive copy commands.
Demonstrates building and executing a recursive copy of a two-level directory tree, using find to locate directories by name, and comparing expected structure with actual results.
Analyze what is wrong with the first copy attempt and demonstrate copying deepest directories first to produce the correct directory tree.
Explores how recursive copying of a directory tree can fail when depth and order are misaligned, and shows how to fix it by manual recreation and correct copy sequences.
Explore how cp -r handles recursive copying, including behavior when the destination directory does not exist or already exists, and how the subtree is copied.
Demonstrate recursive copy with cp -R by copying directory a to b when b does not exist, then copy into an existing directory c to show differing behavior.
Copy directory trees by prioritizing the deepest directories first using find's -depth option, construct targets accurately, and verify copying with logging to ensure the correct order and success.
Copy directory trees with the find command using depth, adjust the set statement for deeper levels, and verify the copies align with the tree.
Test directory tree copy robustness by checking numeric ordering; copy deepest directory trees first and observe that the result is unaffected by the order.
Demonstrates that alphanumeric ordering of a target directory does not affect recursive file discovery with find, showing robustness in finding files regardless of directory order.
Verify the robustness of copying directory trees as depth increases by counting directories with find and wc, confirming correct behavior for deeper trees.
Build a five-level directory tree and recursively copy it to test robustness with respect to depth. Use find to inspect the tree and verify the directory counts across levels.
Learn to construct absolute paths from the current directory using pwd and the PWD variable, and derive relative paths with find and its -printf option.
Learn how to locate files with the Linux find command and output their absolute paths using printf, current directory references, and proper escaping.
Combine pictures from multiple directories into a time-ordered collection using identify from image magick to extract timestamps, then rename files with zero-padded numbers and underscores.
prepares a linux basics exercise on renaming picture files by copying materials, creating directory structures, and installing required tools like ImageMagick to run the script.
demonstrate an exercise to rename picture files in a directory using bash, count images, build new filenames from timestamps and directory names, and replace spaces with underscores.
Demonstrate a solution to rename 12 picture files by assigning two-digit numbers, creating a temporary folder, copying and renaming files, and preserving time stamps.
Detect changes on Linux file systems using the find command and modification times. Understand metadata versus data and locate recently modified files, such as package installations or config data.
Learn to detect recent changes on a Linux file system by using find with modification times, setting mtime values, and filtering by minutes and days.
Master the find -prune option to skip subdirectories and prune by name from the root, and recognize common errors like missing -o -print that affect the output.
Demonstrate using the find command with the -prune option to prune subtrees in a recreated directory tree, starting from the current directory and printing the resulting structure.
Discover how the filesystem hierarchy standard reveals which top-level directories change after login and rpm installations by filtering file changes with find, awk, and targeted exclusions.
Use rpm to list files in a package, view package information, and inspect pre- and post-install scripts, then compare with find to detect filesystem changes.
Learn to locate Firefox bookmarks by inspecting the home and old Mozilla Firefox directories, using find with modification times, and copying places files to the default profile.
Detect the smplayer floating control setting by locating its configuration file, comparing two versions with diff, and adjusting the activation area to control when the floating controls appear.
Recap how to detect filesystem changes with find, using time-based queries like -mtime and -amin, while examining rpm -ql outputs and pruning directories within the filesystem hierarchy.
Configure a network storage setup and use the virtual file system with the iSCSI layer to transfer data between client and server, export directories, and manage files with find.
Set up and configure an nfs server on Linux, enabling services, adjusting the firewall, creating /homes, assigning uid 1000 and gid 1000, exporting to world with rw, and verifying exports.
Configure the NFS client by adding an fstab entry for the network device, mounting the NFS filesystem, enabling permanent home directories, and migrating the old home to the new location.
Install and configure an iSCSI server and target on CentOS 7, set up a backing store and ACL with an IQN and LUN, and enable the firewall.
Configure an iSCSI client on CentOS 7 to discover and log into an iSCSI target, create and mount a partition with a filesystem, and configure fstab.
Configure the iSCSI client on Windows 10 to discover targets, connect, and mount a remote disk. Create a partition and format it with a filesystem for use.
Limit the bandwidth across three virtual machines for simulation using traffic control. Open firewall ports and compare server-client performance from about 20 gigabits per second to 1 megabit per second.
Explore using find on NFS disks, verify limits, mount file systems, skip the current directory, and filter by file system type to speed up searches.
Learn to avoid running find on an iSCSI disk by identifying iSCSI-backed mounts, using grep and file type filters to target local disks, and inspecting symbolic links to block devices.
Compare nfs and iscsi, outlining use cases and how file operations differ from block data. Explain how separate storage networks affect find performance and suggest running find locally when possible.
Find the largest file in the home directories and generate a size-ordered list of large files using an iterative mini script, find -size, -quit, and sort -n by size.
Demonstrate finding the largest file in a directory tree using the find command and size comparisons. Create a size-based file list by printing file sizes and sorting results by size.
Learn to list files sorted by modification time using find with printf to print the modification times, pipe to sort numerically, and display the oldest files first.
Recap how find works with network storage, contrast shared versus dedicated setups, and show how to find the biggest file and list by size or modification time.
Discover locate as a fast alternative to find for locating file names and keeping an updated file list searchable with grep.
use find to locate a file by name on the root filesystem, filter results to a shortlist, and identify screenshot and restore utilities from a list of files.
Learn to use the locate utility to find files by name with an up-to-date database, avoid manual file lists, and refine results with grep and configuration options.
Learn how to locate files by using rpm -q and query documentation, inspect update and configuration files, and use admin pages to keep the file list relevant and streamlined.
Conclude with practical pointers from the Linux Documentation Project, Bash scripting, and awk fundamentals, guiding you toward powerful command line mastery using core utils and scripting guides.
Learn the concepts and tools to find files on your Linux file system to have control over what is going on and to be able to find out where changes occur.
Develop the skill to master your Linux file system with this course for starting Linux professionals.
Installation of exact copy of Linux course machines
Exploration of find to find files
Complementing find with friends like xargs, sed, etc.
Find to detect file system changes
Find pipelines to manipulate directories
Updatedb and locate to find files
Find and friends: the basic skillset to control and explore your file system.
On every Linux system you need to install, configure and run software. To let your system run smoothly, you need to be able to control what's on your file system. So you need to know how your file system is organized and how you can find files on it. That's exactly what this course is about: finding files. Once you have found files you will want to manipulate them. In the course we show some common examples how to do so. Learning the fundamental concepts of find gives you the power to let your Linux system run smoothly.
Even in these days of system automation, find is more important than ever. Find gives you the power to explore your system so that you can find what you need to automate.
Content and overview
Suitable for beginners with some Linux experience, this course teaches you how to tackle some common problems on your Linux file system using the find and friends commands.
To ensure that you get the exact same results as the teacher, we start with setting up the course environment. It doesn't matter if you use your Windows 10 machine or an empty machine. Together we will install 3 virtual machines with Linux on it. Our Linux distribution of choice is CentOS 7, hence the 7 in "7 Linux basics".
On the first Linux machine we do all the instructions, demonstrations and exercises. Concepts are shown on the command line to demonstrate the practical value. You will first hear about a concept in a presentation and right after, it is demonstrated on the Linux machine. We start simple, with exploring the find command. Next, we will use find to manipulate the file system. Some more complex pipelines will be used to achieve our goals. Lastly, you will install a second Linux machine with NFS and a third with iSCSI. These will be used to demonstrate the effect of having different types of file systems mounted under your Linux root file system and how we use find on them.
Personally I like to have a book when I study and references where I can quickly find details. So I have added a course survival guide with information about the video's. It is very useful to quickly go back to a specific topic. Furthermore, I have added quick reference cards so that you can get to the information lightning fast of the commands you have studied in this course.
Have fun finding files!