This post will go through 10 different Linux commands and their R alternatives. If you’re interested in learning more R functions for working with files like some of those below, also check out this post.
Linux | R | What does it do? |
---|---|---|
ls | list.files() | Lists all the files in a directory |
ls -R | list.files(recursive = TRUE) | Recursively lists all the files in a directory and all sub-directories |
ls | grep “something” | list.files(pattern = “something”) | Lists all the files in a directory containing the regex “something” |
R
list.files("/path/to/directory") list.files("/path/to/do/directory", recursive = TRUE) # search for files containing "something" in their name list.files("/path/to/do/directory", pattern = "something") # search for all CSV files list.files("/path/to/do/directory", pattern = ".csv")
Linux
ls /path/to/directory ls -R /path/to/directory # search for files containing "something" in their name ls /path/to/directory | grep "something" # search for all CSV files ls /path/to/directory | grep ".csv"
Linux | R | What does it do? |
---|---|---|
head | head() | Prints the top n records of a file (Linux) / data frame or other object (R) |
R
# let df be a data frame head(df) head(df, 10)
Linux
head -6 some_file.txt head -10 some_file.txt
Linux | R | What does it do? |
---|---|---|
pwd | getwd() | Gets the current directory |
R
getwd()
Linux
pwd
Linux | R | What does it do? |
---|---|---|
cd | setwd() | Change the current working directory |
R
setwd("/path/to/new/directory")
Linux
cd /path/to/new/directory
Linux | R | What does it do? |
---|---|---|
ls -1 | wc -l | length(list.files(…)) | Counts the number of files in a directory |
R
length(list.files("/path/to/some/directory"))
Linux
ls -1 | wc -l
Linux | R | What does it do? |
---|---|---|
ls -l | file.info() | Returns the file permissions (Linux) / additional info (R) |
R
file.info("/path/to/directory/file.txt")
file.info returns additional information about a file besides file permissions, including size, created time, last modified time, and last access time. If you just want to get permissions of the file, just run this:
file.info("/path/to/directory/file.txt")$mode
The permissions are returned in octal; to translate what this octal result means into read / write etc. abilities, see this link.
Linux
ls -l /path/to/directory/file.txt
Linux | R | What does it do? |
---|---|---|
mkdir | dir.create() | Creates a new directory |
R
# create folder in current directory dir.create("new_folder") # create folder in different directory dir.create("/path/to/new_directory")
Linux
# create folder in current directory mkdir new_folder # create folder in different directory mkdir /path/to/new_directory
Linux | R | What does it do? |
---|---|---|
touch | file.create() | Creates a new file |
R
# create a file in current directory file.create("new_file.txt") # create file in different directory file.create("/path/to/directory/new_file.txt")
Linux
# create a file in current directory touch new_file.txt # create file in different directory touch /path/to/directory/new_file.txt
Though it’s possible to get the number of lines, words, and characters in a file using base R, it’s simpler to do so with the hyperSpec package.
Just use install.packages to install if needed:
install.packages("hyperSpec")
Running the below line of code will print out a data frame with the number of characters, words, and lines in the input file. Similarly, the Linux wc command will print out the same information for a file.
Linux | R | What does it do? |
---|---|---|
wc | wc() | Lists the number of characters, words, and lines in a file |
R
library(hyperSpec) wc("/path/to/directory/file.txt")
Linux
wc /path/to/directory/file.txt
Linux | R | What does it do? |
---|---|---|
cp | file.copy() | Copy a file |
R
# copy file.txt to new_directory file.copy("/path/to/directory/file.txt", "/path/to/new_directory")
Linux
# option 1 cp /path/to/directory/file.txt /path/to/new_directory # option 2 cp /path/to/directory/file.txt /path/to/new_directory/file.txt
That’s it for this post. Happy coding! Please check out my other R posts here.
Very excited to announce the early-access preview (MEAP) of my upcoming book, Software Engineering for…
Ever had long-running code that you don't know when it's going to finish running? If…
Background If you've done any type of data analysis in Python, chances are you've probably…
In this post, we will investigate the pandas_profiling and sweetviz packages, which can be used…
In this post, we're going to cover how to plot XGBoost trees in R. XGBoost…
In this post, we'll discuss the underrated Python collections package, which is part of the…